aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile
blob: 3983e2600893a70a5d69df917e93db7a16cc58df (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
.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

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

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