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