aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile
blob: b917d653261e10b980c640562673592aba0cf5b8 (plain) (blame)
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
.POSIX:

CONFIGFILE = config.mk
include $(CONFIGFILE)

OS = linux
# Linux:   linux
# Mac OS:  macos
# Windows: windows
include mk/$(OS).mk


LIB_MAJOR = 1
LIB_MINOR = 0
LIB_VERSION = $(LIB_MAJOR).$(LIB_MINOR)
LIB_NAME = charconv


BIN =\
	convert-to-shogi\
	convert-to-dice\
	convert-to-go\
	convert-to-draughts\
	convert-to-region-indicators\
	convert-to-tags\
	convert-to-gender-symbols\
	convert-to-latin\
	convert-to-cypriot\
	convert-to-bold\
	convert-to-italic\
	convert-to-bold-italic\
	convert-to-monospace\
	convert-to-segmented\
	convert-to-sans-serif\
	convert-to-sans-serif-bold\
	convert-to-sans-serif-italic\
	convert-to-sans-serif-bold-italic\
	convert-to-double-struck\
	convert-to-double-struck-italic\
	convert-to-fraktur\
	convert-to-bold-fraktur\
	convert-to-script\
	convert-to-bold-script\
	convert-to-buhid\
	convert-to-replacement\
	convert-to-bracketed\
	convert-to-variation-selectors\
	convert-to-superscript\
	convert-to-subscript\
	convert-to-lydian\
	convert-to-lycian\
	convert-to-domino-tiles\
	convert-to-clock-faces\
	convert-to-ocr\
	convert-to-crop-marks\
	convert-to-braille\
	convert-to-lisu\
	convert-to-yijing-monograms\
	convert-to-yijing-digrams\
	convert-to-yijing-trigrams\
	convert-to-yijing-tetragrams\
	convert-to-yijing-hexagrams\
	convert-to-vulgar-fractions\
	convert-to-flipped\
	convert-to-overlaid\
	convert-to-joined\
	convert-to-mirrored\
	convert-to-turned\
	convert-to-transposed\
	convert-to-sora-sompeng\
	convert-to-tally-marks\
	convert-to-ideographic-tally-marks\
	convert-to-negative\
	convert-to-symbols

LIBOBJ =\
	libcharconv_decode_utf8_.o\
	libcharconv_shogi.o\
	libcharconv_dice.o\
	libcharconv_go_white.o\
	libcharconv_go_black.o\
	libcharconv_draughts.o\
	libcharconv_region_indicators.o\
	libcharconv_tags.o\
	libcharconv_gender_symbols.o\
	libcharconv_latin.o\
	libcharconv_cypriot.o\
	libcharconv_bold.o\
	libcharconv_italic.o\
	libcharconv_bold_italic.o\
	libcharconv_monospace.o\
	libcharconv_segmented.o\
	libcharconv_sans_serif.o\
	libcharconv_sans_serif_bold.o\
	libcharconv_sans_serif_italic.o\
	libcharconv_sans_serif_bold_italic.o\
	libcharconv_double_struck.o\
	libcharconv_double_struck_italic.o\
	libcharconv_fraktur.o\
	libcharconv_bold_fraktur.o\
	libcharconv_script.o\
	libcharconv_bold_script.o\
	libcharconv_buhid.o\
	libcharconv_replacement.o\
	libcharconv_bracketed.o\
	libcharconv_variation_selectors.o\
	libcharconv_superscript.o\
	libcharconv_subscript.o\
	libcharconv_lydian.o\
	libcharconv_lycian.o\
	libcharconv_domino_tiles_horizontal.o\
	libcharconv_domino_tiles_vertical.o\
	libcharconv_clock_faces.o\
	libcharconv_ocr.o\
	libcharconv_crop_marks.o\
	libcharconv_braille.o\
	libcharconv_lisu.o\
	libcharconv_yijing_monograms.o\
	libcharconv_yijing_digrams.o\
	libcharconv_yijing_trigrams.o\
	libcharconv_yijing_tetragrams.o\
	libcharconv_yijing_hexagrams.o\
	libcharconv_vulgar_fractions.o\
	libcharconv_flipped.o\
	libcharconv_overlaid.o\
	libcharconv_joined.o\
	libcharconv_mirrored.o\
	libcharconv_turned.o\
	libcharconv_transposed.o\
	libcharconv_sora_sompeng.o\
	libcharconv_tally_marks.o\
	libcharconv_ideographic_tally_marks.o\
	libcharconv_negative.o\
	libcharconv_symbols.o

LOBJ = $(LIBOBJ:.o=.lo)

BINOBJ = $(BIN:=.o) common.o


all: libcharconv.a libcharconv.$(LIBEXT) $(BIN)
common.o: libcharconv.h common.h
$(BINOBJ): libcharconv.h common.h
$(LIBOBJ): libcharconv.h lib-common.h
$(LOBJ): libcharconv.h lib-common.h
$(BIN): common.o libcharconv.a

.c.o:
	$(CC) -c -o $@ $< $(CFLAGS) $(CPPFLAGS)

.c.lo:
	$(CC) -fPIC -c -o $@ $< $(CFLAGS) $(CPPFLAGS)

.o:
	$(CC) -fPIC -o $@ $< common.o libcharconv.a $(LDFLAGS)

.c:
	$(CC) -fPIC -o $@ $< common.o libcharconv.a $(CFLAGS) $(CPPFLAGS) $(LDFLAGS)

libcharconv.a: $(LIBOBJ)
	@rm -f -- $@
	$(AR) rc $@ $(LIBOBJ)
	$(AR) ts $@ > /dev/null

libcharconv.$(LIBEXT): $(LOBJ)
	$(CC) $(LIBFLAGS) -o $@ $(LOBJ) $(LDFLAGS)

install: libcharconv.a libcharconv.$(LIBEXT) $(BIN)
	mkdir -p -- "$(DESTDIR)$(PREFIX)/lib"
	mkdir -p -- "$(DESTDIR)$(PREFIX)/bin"
	mkdir -p -- "$(DESTDIR)$(PREFIX)/include"
	cp -- libcharconv.a "$(DESTDIR)$(PREFIX)/lib/"
	cp -- libcharconv.$(LIBEXT) "$(DESTDIR)$(PREFIX)/lib/libcharconv.$(LIBMINOREXT)"
	$(FIX_INSTALL_NAME) "$(DESTDIR)$(PREFIX)/lib/libcharconv.$(LIBMINOREXT)"
	ln -sf -- libcharconv.$(LIBMINOREXT) "$(DESTDIR)$(PREFIX)/lib/libcharconv.$(LIBMAJOREXT)"
	ln -sf -- libcharconv.$(LIBMAJOREXT) "$(DESTDIR)$(PREFIX)/lib/libcharconv.$(LIBEXT)"
	cp -- libcharconv.h "$(DESTDIR)$(PREFIX)/include/"
	cp -- $(BIN) "$(DESTDIR)$(PREFIX)/bin/"

uninstall:
	-rm -f -- "$(DESTDIR)$(PREFIX)/lib/libcharconv.a"
	-rm -f -- "$(DESTDIR)$(PREFIX)/lib/libcharconv.$(LIBMAJOREXT)"
	-rm -f -- "$(DESTDIR)$(PREFIX)/lib/libcharconv.$(LIBMINOREXT)"
	-rm -f -- "$(DESTDIR)$(PREFIX)/lib/libcharconv.$(LIBEXT)"
	-rm -f -- "$(DESTDIR)$(PREFIX)/include/libcharconv.h"
	-cd -- "$(DESTDIR)$(PREFIX)/bin/" && rm -f -- $(BIN)

clean:
	-rm -f -- *.o *.a *.lo *.su *.so *.so.* *.dll *.dylib
	-rm -f -- *.gch *.gcov *.gcno *.gcda *.$(LIBEXT) $(BIN)

.SUFFIXES:
.SUFFIXES: .lo .o .c

.PHONY: all install uninstall clean