Makefile 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. #
  2. # Makefile for AmigaOS
  3. #
  4. .PHONY: help all staticlib sharedlib check clean install
  5. vpath %.c ../lib ../examples ../xmlwf ../tests
  6. vpath %.h ../lib ../tests
  7. #
  8. # Set these for SDK installation.
  9. #
  10. tooldir = SDK:Local/C
  11. staticlibdir = SDK:Local/clib2/lib
  12. staticincludedir = SDK:Local/clib2/include
  13. sharedlibdir = SDK:Local/Libs
  14. sharedincludedir = SDK:Local/common/include
  15. ifeq ($(MAKECMDGOALS), staticlib)
  16. DESTDIR = lib
  17. else
  18. DESTDIR = libs
  19. endif
  20. STATICLIB = $(DESTDIR)/libexpat.a
  21. SHAREDLIB = $(DESTDIR)/expat.library
  22. XMLWF = $(DESTDIR)/xmlwf
  23. ELEMENTS = $(DESTDIR)/elements
  24. OUTLINE = $(DESTDIR)/outline
  25. RUNTESTS = $(DESTDIR)/runtests
  26. BENCHMARK = $(DESTDIR)/benchmark
  27. help:
  28. @echo "Requires:"
  29. @echo " AmigaOS 4.0"
  30. @echo " SDK 51.22"
  31. @echo " clib2 1.202"
  32. @echo ""
  33. @echo "Targets:"
  34. @echo " all - make expat libraries, xmlwf, examples and run test suite"
  35. @echo " install - install expat libraries and tools into SDK"
  36. all:
  37. -makedir force lib libs
  38. $(MAKE) staticlib
  39. $(MAKE) sharedlib
  40. staticlib: $(STATICLIB) $(XMLWF) $(ELEMENTS) $(OUTLINE) $(RUNTESTS) $(BENCHMARK) check
  41. @echo done
  42. sharedlib: $(SHAREDLIB) $(XMLWF) $(ELEMENTS) $(OUTLINE) $(RUNTESTS) $(BENCHMARK) check
  43. @echo done
  44. check:
  45. $(RUNTESTS)
  46. clean:
  47. -delete lib/#?.o quiet
  48. -delete libs/#?.o quiet
  49. install:
  50. copy libs/xmlwf $(tooldir) quiet
  51. copy /lib/expat.h /lib/expat_external.h $(staticincludedir) quiet
  52. copy lib/libexpat.a $(staticlibdir) quiet
  53. copy libs/expat.library $(sharedlibdir) quiet
  54. copy include $(sharedincludedir) quiet all
  55. CC = gcc
  56. LIBTOOL = ar
  57. STRIP = strip
  58. LDFLAGS =
  59. LIBS =
  60. CFLAGS = -DNDEBUG -O2
  61. LTFLAGS = -crs
  62. STRIPFLAGS = -R.comment
  63. LAUNCH =
  64. ifeq ($(MAKECMDGOALS), staticlib)
  65. CFLAGS += -mcrt=clib2
  66. LDFLAGS += -mcrt=clib2
  67. LIBS += $(STATICLIB)
  68. INCLUDES = -I../lib
  69. endif
  70. ifeq ($(MAKECMDGOALS), sharedlib)
  71. CFLAGS += -mcrt=newlib -D__USE_INLINE__
  72. LDFLAGS += -mcrt=newlib
  73. INCLUDES = -I. -Iinclude -Iinclude/libraries -I../lib
  74. LAUNCH = $(DESTDIR)/launch.o
  75. endif
  76. COMPILE = $(CC) $(CFLAGS) $(INCLUDES) -c
  77. LINK = $(CC) $(LDFLAGS) -o $@
  78. $(STATICLIB): $(DESTDIR)/xmlparse.o $(DESTDIR)/xmltok.o $(DESTDIR)/xmlrole.o
  79. $(LIBTOOL) $(LTFLAGS) $@ $^
  80. $(DESTDIR)/xmlparse.o: xmlparse.c expat.h xmlrole.h xmltok.h \
  81. expat_external.h internal.h amigaconfig.h
  82. $(COMPILE) $< -o $@
  83. $(DESTDIR)/xmlrole.o: xmlrole.c ascii.h xmlrole.h expat_external.h \
  84. internal.h amigaconfig.h
  85. $(COMPILE) $< -o $@
  86. $(DESTDIR)/xmltok.o: xmltok.c xmltok_impl.c xmltok_ns.c ascii.h asciitab.h \
  87. iasciitab.h latin1tab.h nametab.h utf8tab.h xmltok.h xmltok_impl.h \
  88. expat_external.h internal.h amigaconfig.h
  89. $(COMPILE) $< -o $@
  90. $(SHAREDLIB): $(DESTDIR)/expat_lib.o $(DESTDIR)/expat_vectors.o $(DESTDIR)/stdlib.o lib/libexpat.a
  91. $(LINK) -nostartfiles -nostdlib -o $@ $^
  92. $(DESTDIR)/expat_lib.o: expat_lib.c
  93. $(COMPILE) $< -o $@
  94. $(DESTDIR)/expat_vectors.o: expat_vectors.c
  95. $(COMPILE) $< -o $@
  96. $(DESTDIR)/stdlib.o: stdlib.c
  97. $(COMPILE) $< -o $@
  98. $(LAUNCH): launch.c
  99. $(COMPILE) $< -o $@
  100. $(XMLWF): $(DESTDIR)/xmlwf.o $(DESTDIR)/xmlfile.o $(DESTDIR)/codepage.o $(DESTDIR)/readfilemap.o $(LAUNCH)
  101. $(LINK) $^ $(LIBS)
  102. $(STRIP) $(STRIPFLAGS) $@
  103. $(DESTDIR)/xmlwf.o: xmlwf.c
  104. $(COMPILE) $< -o $@
  105. $(DESTDIR)/xmlfile.o: xmlfile.c
  106. $(COMPILE) $< -o $@
  107. $(DESTDIR)/codepage.o: codepage.c
  108. $(COMPILE) $< -o $@
  109. $(DESTDIR)/readfilemap.o: readfilemap.c
  110. $(COMPILE) $< -o $@
  111. $(ELEMENTS): $(DESTDIR)/elements.o $(LAUNCH)
  112. $(LINK) $^ $(LIBS)
  113. $(STRIP) $(STRIPFLAGS) $@
  114. $(DESTDIR)/elements.o: elements.c
  115. $(COMPILE) $< -o $@
  116. $(OUTLINE): $(DESTDIR)/outline.o $(LAUNCH)
  117. $(LINK) $^ $(LIBS)
  118. $(STRIP) $(STRIPFLAGS) $@
  119. $(DESTDIR)/outline.o: outline.c
  120. $(COMPILE) $< -o $@
  121. $(RUNTESTS): $(DESTDIR)/runtests.o $(DESTDIR)/chardata.o $(DESTDIR)/minicheck.o $(LAUNCH)
  122. $(LINK) $^ $(LIBS)
  123. $(DESTDIR)/chardata.o: chardata.c chardata.h
  124. $(COMPILE) $< -o $@
  125. $(DESTDIR)/minicheck.o: minicheck.c minicheck.h
  126. $(COMPILE) $< -o $@
  127. $(DESTDIR)/runtests.o: runtests.c chardata.h
  128. $(COMPILE) $< -o $@
  129. $(BENCHMARK): $(DESTDIR)/benchmark.o $(LAUNCH)
  130. $(LINK) $^ $(LIBS) -lm
  131. $(DESTDIR)/benchmark.o: benchmark/benchmark.c
  132. $(COMPILE) $< -o $@