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