Makefile 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. ######################################################################
  2. #
  3. # Makefile for Info-ZIP's zip, zipcloak, zipnote, and zipsplit on BeOS
  4. #
  5. # Copyright © 1999 Info-ZIP
  6. # Chris Herborth (chrish@pobox.com)
  7. #
  8. # This is the new New and Improved Makefile for BeOS; it automatically
  9. # detects your platform and uses the appropriate compiler and compiler
  10. # flags.
  11. ######################################################################
  12. # Things that don't change:
  13. # Punish people who don't have SMP hardware.
  14. MAKE = make -j 4 -f beos/Makefile
  15. SHELL = /bin/sh
  16. LN = ln -s
  17. BIND = $(CC)
  18. AS = $(CC) -c
  19. CPP = $(CC) -E
  20. INSTALL = install
  21. # Target directories
  22. prefix = /boot/home/config
  23. BINDIR = $(prefix)/bin
  24. manext = 1
  25. MANDIR = $(prefix)/man/man$(manext)
  26. ZIPMANUAL = MANUAL
  27. VERSION = Version 2.3 of __DATE__
  28. ######################################################################
  29. # Things that change:
  30. # PowerPC system
  31. ifeq "$(BE_HOST_CPU)" "ppc"
  32. CC:=mwcc
  33. ifeq "$(shell uname -r)" "4.0"
  34. CFLAGS:=-O7 -opt schedule604 -rostr -w9 \
  35. -I. -DHAVE_DIRENT_H -DPASSWD_FROM_STDIN
  36. LFLAGS1:=-warn
  37. else
  38. CFLAGS:=-O7 -proc 604e -w9 -I. -DHAVE_DIRENT_H -DPASSWD_FROM_STDIN
  39. LFLAGS1:=-nodup
  40. endif
  41. LFLAGS2:=-L/boot/develop/lib/ppc -lbe -lroot
  42. OBJA =
  43. TARGET=$(ZIPS)
  44. # x86 system
  45. else
  46. CC:=gcc
  47. # Removed -Wconversion and -Wshadow because of the unnecessary warnings
  48. # they generate. - Sept. 28, 1999
  49. CFLAGS:=-O3 -mpentiumpro \
  50. -Wall -Wno-multichar -Wno-ctor-dtor-privacy \
  51. -Wbad-function-cast -Woverloaded-virtual \
  52. -I. -I/boot/develop/headers/be/support \
  53. -I/boot/develop/headers/be/storage \
  54. -DHAVE_DIRENT_H -DPASSWD_FROM_STDIN # -DASMV
  55. LFLAGS1:=
  56. LFLAGS2:=-L/boot/develop/lib/x86 -lbe -lroot
  57. OBJA = #match.o
  58. TARGET=$(ZIPS)
  59. endif
  60. ######################################################################
  61. # Helpful targets
  62. all:
  63. $(MAKE) CC=$(CC) CFLAGS="$(CFLAGS)" \
  64. LFLAGS1="$(LFLAGS1)" LFLAGS2="$(LFLAGS2)" \
  65. $(TARGET)
  66. ######################################################################
  67. # Object file lists and other build goodies
  68. # Object file lists
  69. OBJZ = zip.o zipfile.o zipup.o fileio.o util.o globals.o crypt.o ttyio.o \
  70. beos.o crc32.o
  71. OBJI = deflate.o trees.o
  72. # OBJA moved into ifeq block above; we'll use assembly for x86
  73. OBJU = zipfile_.o fileio_.o util_.o globals.o beos_.o
  74. OBJN = zipnote.o $(OBJU)
  75. OBJC = zipcloak.o $(OBJU) crc32_.o crypt_.o ttyio.o
  76. OBJS = zipsplit.o $(OBJU)
  77. # Headers
  78. ZIP_H = zip.h ziperr.h tailor.h beos/osdep.h
  79. # What to build?
  80. ZIPS = zip zipnote zipsplit zipcloak
  81. # suffix rules
  82. .SUFFIXES:
  83. .SUFFIXES: _.o .o .c .doc .1
  84. .c_.o:
  85. rm -f $*_.c; $(LN) $< $*_.c
  86. $(CC) -c $(CFLAGS) -DUTIL $*_.c
  87. rm -f $*_.c
  88. .c.o:
  89. $(CC) -c $(CFLAGS) $<
  90. .1.doc:
  91. groff -man -Tascii $< > $@
  92. # rules for zip, zipnote, zipcloak, zipsplit, and the Zip MANUAL.
  93. $(OBJZ): $(ZIP_H)
  94. $(OBJI): $(ZIP_H)
  95. $(OBJN): $(ZIP_H)
  96. $(OBJS): $(ZIP_H)
  97. $(OBJC): $(ZIP_H)
  98. zip.o crc32.o crypt.o fileio.o zipfile.o zipup.o: crc32.h
  99. zipcloak.o crc32_.o crypt_.o fileio_.o zipfile_.o: crc32.h
  100. zip.o zipup.o crypt.o ttyio.o zipcloak.o crypt_.o: crypt.h
  101. zip.o zipup.o zipnote.o zipcloak.o zipsplit.o: revision.h
  102. zip.o crypt.o ttyio.o zipcloak.o crypt_.o: ttyio.h
  103. zipup.o: beos/zipup.h
  104. match.o: match.S
  105. $(CPP) match.S > _match.s
  106. $(AS) _match.s
  107. mv -f _match.o match.o
  108. rm -f _match.s
  109. beos.o: beos/beos.c
  110. $(CC) -c $(CFLAGS) beos/beos.c
  111. beos_.o: beos/beos.c
  112. rm -f $*_.c; $(LN) beos/beos.c $*_.c
  113. $(CC) -c $(CFLAGS) -DUTIL $*_.c
  114. rm -f $*_.c
  115. zips: $(ZIPS)
  116. zipsman: $(ZIPS) $(ZIPMANUAL)
  117. zip: $(OBJZ) $(OBJI) $(OBJA)
  118. $(BIND) -o zip $(LFLAGS1) $(OBJZ) $(OBJI) $(OBJA) $(LFLAGS2)
  119. zipnote: $(OBJN)
  120. $(BIND) -o zipnote $(LFLAGS1) $(OBJN) $(LFLAGS2)
  121. zipcloak: $(OBJC)
  122. $(BIND) -o zipcloak $(LFLAGS1) $(OBJC) $(LFLAGS2)
  123. zipsplit: $(OBJS)
  124. $(BIND) -o zipsplit $(LFLAGS1) $(OBJS) $(LFLAGS2)
  125. $(ZIPMANUAL): man/zip.1
  126. groff -man -Tascii man/zip.1 > $(ZIPMANUAL)
  127. # install
  128. install: $(ZIPS)
  129. $(INSTALL) -m755 $(ZIPS) $(BINDIR)
  130. mkdir -p $(MANDIR)
  131. $(INSTALL) -m644 man/zip.1 $(MANDIR)/zip.$(manext)
  132. uninstall:
  133. -cd $(BINDIR); rm -f $(ZIPS)
  134. -cd $(MANDIR); rm -f zip.$(manext)
  135. dist: $(ZIPMANUAL)
  136. zip -u9T zip`sed -e '/VERSION/!d' -e 's/.*"\(.*\)".*/\1/' \
  137. -e s/[.]//g -e q revision.h` \
  138. `awk '/^Makefile/,/vms_zip.rnh/ {print $$1}' < contents`
  139. # clean up after making stuff and installing it
  140. clean:
  141. rm -f *.o $(ZIPS) flags
  142. # end of Makefile