1ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert# Copyright (C) 2016 and later: Unicode, Inc. and others. 2ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert# License & terms of use: http://www.unicode.org/copyright.html#License 3ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert# 4ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert# Copyright (c) 2000-2005 IBM, Inc. and others 5ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert# conversion sample code 6ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert# Usage: 7ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert# - configure, build, install ICU 8ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert# - ensure that 'icu-config' is in the PATH (PREFIX/bin/icu-config) 9ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert# - if ICU is not built relative to this directory, 10ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert# set the variable ICU_PATH to the 'icu' directory 11ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert# (i.e. /foo/icu ) 12ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert# - do 'make' in this directory 13ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert 14ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubertinclude ../defs.mk 15ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert 16ffdc27edd5503111189fc11165c5a11289a71f79Fredrik RoubertICU_DEFAULT_PATH=../../.. 17ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert 18ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubertifeq ($(strip $(ICU_PATH)),) 19ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert ICU_PATH=$(ICU_DEFAULT_PATH) 20ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubertendif 21ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert 22ffdc27edd5503111189fc11165c5a11289a71f79Fredrik RoubertGENRBOPT = -s. -d. 23ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert 24ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert# Name of your target 25ffdc27edd5503111189fc11165c5a11289a71f79Fredrik RoubertTARGET=uresb 26ffdc27edd5503111189fc11165c5a11289a71f79Fredrik RoubertPKG=$(TARGET) 27ffdc27edd5503111189fc11165c5a11289a71f79Fredrik RoubertRES_SRC=root.txt en.txt sr.txt 28ffdc27edd5503111189fc11165c5a11289a71f79Fredrik RoubertRESOURCES=$(RES_SRC:%.txt=%.res) 29ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert 30ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert# All object files (C or C++) 31ffdc27edd5503111189fc11165c5a11289a71f79Fredrik RoubertOBJECTS=uresb.o 32ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert 33ffdc27edd5503111189fc11165c5a11289a71f79Fredrik RoubertCLEANFILES=*~ $(TARGET).out 34ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert 35ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubertall: $(RESOURCES) $(TARGET) 36ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert 37ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Rouberturesb.o: $(ICU_PATH)/source/tools/toolutil/uoptions.h 38ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert 39ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert$(ICU_PATH)/source/tools/toolutil/uoptions.h: 40ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert @echo "Please read the directions at the top of this file (Makefile)" 41ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert @echo "Can't open $@ - check ICU_PATH" 42ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert @false 43ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert 44ffdc27edd5503111189fc11165c5a11289a71f79Fredrik RoubertCPPFLAGS += -I$(ICU_PATH)/source/tools/toolutil 45ffdc27edd5503111189fc11165c5a11289a71f79Fredrik RoubertLDFLAGS += -L$(ICU_PATH)/source/tools/toolutil $(shell icu-config --ldflags-toolutil --ldflags-icuio) 46ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert 47ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert.PHONY: all clean distclean check report 48ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert 49ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubertdistclean clean: 50ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) 51ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert -$(RMV) $(OBJECTS) $(TARGET) $(RESOURCES) 52ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert 53ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert 54ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert## resources 55ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert%.res: %.txt 56ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert @echo "generating $@" 57ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert $(GENRB) $(GENRBOPT) $^ 58ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert 59ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert## Special for a special codepage 60ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubertsr.res : sr.txt 61ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert @echo "generating $@" 62ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert $(GENRB) $(GENRBOPT) -e cp1251 $? 63ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert 64ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert# Can change this to LINK.c if it is a C only program 65ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert# Can add more libraries here. 66ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert$(TARGET): $(OBJECTS) 67ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert $(CC) -o $(TARGET) $(LDFLAGS) 68ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert 69ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert# Make check: simply runs the sample, logged to a file 70ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubertcheck: $(TARGET) $(RESOURCES) 71ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert $(INVOKE) ./$(TARGET) en | tee $(TARGET).out 72ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert 73ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert# Make report: creates a 'report file' with both source and sample run 74ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubertreport: $(TARGET).report 75ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert 76ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert$(TARGET).report: check $(TARGET).cpp 77ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert more $(TARGET).cpp $(TARGET).out > $@ 78ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert 79ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert 80ffdc27edd5503111189fc11165c5a11289a71f79Fredrik Roubert 81