| @@ -8,6 +8,18 @@ include $(TOP)/config.mak · 7 unmodified lines |
| 8 | CFLAGS+=-g -Wall | 8 | CFLAGS+=-g -Wall |
| 9 | CFLAGS_P=$(CFLAGS) -pg -static -DCONFIG_TCC_STATIC | 9 | CFLAGS_P=$(CFLAGS) -pg -static -DCONFIG_TCC_STATIC |
| 10 | LIBS_P= | 10 | LIBS_P= |
| | 11 | LIBS=. |
| | 12 | |
| | 13 | # My distro wants shared libs, not static ones |
| | 14 | LIBTCCA=libtcc.a |
| | 15 | ifdef DISABLE_STATIC |
| | 16 | CFLAGS+=-fPIC |
| | 17 | LIBTCCA= |
| | 18 | LIBTCCL=-ltcc |
| | 19 | LIBTCCSO=libtcc.so.1 |
| | 20 | endif |
| | 21 | LIBTCCB=$(LIBTCCA) |
| | 22 | LIBTCCB+=$(LIBTCCSO) |
| 11 | | 23 | |
| 12 | ifneq ($(GCC_MAJOR),2) | 24 | ifneq ($(GCC_MAJOR),2) |
| 13 | CFLAGS+=-fno-strict-aliasing | 25 | CFLAGS+=-fno-strict-aliasing |
| @@ -117,11 +129,11 @@ ifdef CONFIG_CROSS · 103 unmodified lines |
| 117 | PROGS+=$(PROGS_CROSS) | 129 | PROGS+=$(PROGS_CROSS) |
| 118 | endif | 130 | endif |
| 119 | | 131 | |
| 120 | all: $(PROGS) $(LIBTCC1) $(BCHECK_O) libtcc.a tcc-doc.html tcc.1 libtcc_test$(EXESUF) | 132 | all: $(PROGS) $(LIBTCC1) $(BCHECK_O) $(LIBTCCB) tcc-doc.html tcc.1 libtcc_test$(EXESUF) |
| 121 | | 133 | |
| 122 | # Host Tiny C Compiler | 134 | # Host Tiny C Compiler |
| 123 | tcc$(EXESUF): tcc.o libtcc.a | 135 | tcc$(EXESUF): tcc.o $(LIBTCCA) |
| 124 | $(CC) -o $@ $^ $(LIBS) | 136 | $(CC) -o $@ $^ $(LIBS) $(LIBTCCL) |
| 125 | | 137 | |
| 126 | # Cross Tiny C Compilers | 138 | # Cross Tiny C Compilers |
| 127 | %-tcc$(EXESUF): | 139 | %-tcc$(EXESUF): |
| @@ -163,8 +175,13 @@ $(LIBTCC_OBJ) tcc.o : %.o : %.c $(LIBTCC_INC) · 35 unmodified lines |
| 163 | libtcc.a: $(LIBTCC_OBJ) | 175 | libtcc.a: $(LIBTCC_OBJ) |
| 164 | $(AR) rcs $@ $^ | 176 | $(AR) rcs $@ $^ |
| 165 | | 177 | |
| 166 | libtcc_test$(EXESUF): tests/libtcc_test.c libtcc.a | 178 | libtcc.so.1: $(LIBTCC_OBJ) |
| 167 | $(CC) -o $@ $^ -I. $(CFLAGS) $(LIBS) | 179 | $(CC) -shared -Wl,-soname,$@ -o $@.0 $^ |
| | 180 | ln -sf libtcc.so.1.0 libtcc.so.1 |
| | 181 | ln -sf libtcc.so.1.0 libtcc.so |
| | 182 | |
| | 183 | libtcc_test$(EXESUF): tests/libtcc_test.c $(LIBTCCA) |
| | 184 | $(CC) -o $@ $^ -I. $(CFLAGS) $(LIBS) $(LIBTCCL) |
| 168 | | 185 | |
| 169 | libtest: libtcc_test$(EXESUF) $(LIBTCC1) | 186 | libtest: libtcc_test$(EXESUF) $(LIBTCC1) |
| 170 | ./libtcc_test$(EXESUF) lib_path=. | 187 | ./libtcc_test$(EXESUF) lib_path=. |
| @@ -204,7 +221,7 @@ TCC_INCLUDES = stdarg.h stddef.h stdbool.h float.h varargs.h tcclib.h · 33 unmodified lines |
| 204 | INSTALL=install | 221 | INSTALL=install |
| 205 | | 222 | |
| 206 | ifndef CONFIG_WIN32 | 223 | ifndef CONFIG_WIN32 |
| 207 | install: $(PROGS) $(LIBTCC1) $(BCHECK_O) libtcc.a tcc.1 tcc-doc.html | 224 | install: $(PROGS) $(LIBTCC1) $(BCHECK_O) $(LIBTCCB) tcc.1 tcc-doc.html |
| 208 | mkdir -p "$(bindir)" | 225 | mkdir -p "$(bindir)" |
| 209 | $(INSTALL) -s -m755 $(PROGS) "$(bindir)" | 226 | $(INSTALL) -s -m755 $(PROGS) "$(bindir)" |
| 210 | mkdir -p "$(mandir)/man1" | 227 | mkdir -p "$(mandir)/man1" |
| @@ -219,7 +236,7 @@ ifneq ($(BCHECK_O),) · 8 unmodified lines |
| 219 | endif | 236 | endif |
| 220 | $(INSTALL) -m644 $(addprefix include/,$(TCC_INCLUDES)) "$(tccdir)/include" | 237 | $(INSTALL) -m644 $(addprefix include/,$(TCC_INCLUDES)) "$(tccdir)/include" |
| 221 | mkdir -p "$(libdir)" | 238 | mkdir -p "$(libdir)" |
| 222 | $(INSTALL) -m644 libtcc.a "$(libdir)" | 239 | $(INSTALL) -m644 $(LIBTCCB) "$(libdir)" |
| 223 | mkdir -p "$(includedir)" | 240 | mkdir -p "$(includedir)" |
| 224 | $(INSTALL) -m644 libtcc.h "$(includedir)" | 241 | $(INSTALL) -m644 libtcc.h "$(includedir)" |
| 225 | mkdir -p "$(docdir)" | 242 | mkdir -p "$(docdir)" |
| @@ -230,7 +247,7 @@ uninstall: · 4 unmodified lines |
| 230 | rm -fv $(foreach P,$(LIBTCC1) $(BCHECK_O),"$(tccdir)/$P") | 247 | rm -fv $(foreach P,$(LIBTCC1) $(BCHECK_O),"$(tccdir)/$P") |
| 231 | rm -fv $(foreach P,$(TCC_INCLUDES),"$(tccdir)/include/$P") | 248 | rm -fv $(foreach P,$(TCC_INCLUDES),"$(tccdir)/include/$P") |
| 232 | rm -fv "$(docdir)/tcc-doc.html" "$(mandir)/man1/tcc.1" | 249 | rm -fv "$(docdir)/tcc-doc.html" "$(mandir)/man1/tcc.1" |
| 233 | rm -fv "$(libdir)/libtcc.a" "$(includedir)/libtcc.h" | 250 | rm -fv "$(libdir)/$(LIBTCCB)" "$(includedir)/libtcc.h" |
| 234 | | 251 | |
| 235 | else | 252 | else |
| 236 | install: $(PROGS) $(LIBTCC1) libtcc.a tcc-doc.html | 253 | install: $(PROGS) $(LIBTCC1) libtcc.a tcc-doc.html |
| @@ -246,7 +263,7 @@ install: $(PROGS) $(LIBTCC1) libtcc.a tcc-doc.html · 9 unmodified lines |
| 246 | cp -r win32/examples/. "$(tccdir)/examples" | 263 | cp -r win32/examples/. "$(tccdir)/examples" |
| 247 | $(INSTALL) -m644 $(addprefix include/,$(TCC_INCLUDES)) "$(tccdir)/include" | 264 | $(INSTALL) -m644 $(addprefix include/,$(TCC_INCLUDES)) "$(tccdir)/include" |
| 248 | $(INSTALL) -m644 tcc-doc.html win32/tcc-win32.txt "$(tccdir)/doc" | 265 | $(INSTALL) -m644 tcc-doc.html win32/tcc-win32.txt "$(tccdir)/doc" |
| 249 | $(INSTALL) -m644 libtcc.a libtcc.h "$(tccdir)/libtcc" | 266 | $(INSTALL) -m644 $(LIBTCCB) libtcc.h "$(tccdir)/libtcc" |
| 250 | endif | 267 | endif |
| 251 | | 268 | |
| 252 | # documentation and man page | 269 | # documentation and man page |
| @@ -270,7 +287,7 @@ tar: · 17 unmodified lines |
| 270 | $(MAKE) -C tests $@ | 287 | $(MAKE) -C tests $@ |
| 271 | | 288 | |
| 272 | clean: | 289 | clean: |
| 273 | rm -vf $(PROGS) tcc_p$(EXESUF) tcc.pod *~ *.o *.a *.out libtcc_test$(EXESUF) | 290 | rm -vf $(PROGS) tcc_p$(EXESUF) tcc.pod *~ *.o *.a *.out *.so* *.exe libtcc_test$(EXESUF) |
| 274 | $(MAKE) -C tests $@ | 291 | $(MAKE) -C tests $@ |
| 275 | | 292 | |
| 276 | distclean: clean | 293 | distclean: clean |