home *** CD-ROM | disk | FTP | other *** search
- # Makefile for Zip, ZipCloak, ZipNote and ZipSplit
-
- # Supported Make utilities:
- # - Microsoft/IBM nmake
- # - dmake 3.8 (parallel make, use -P4 if you have the memory)
- # - GNU make, at least version 3.68
- # - NOT watcom make (brain dead, apparently doesn't know lines cont'd with \)
-
- # Supported 16-bit C Compilers (created programs run under OS/2 1.x and 2.x):
- # - Microsoft C 6.00
-
- # Supported 32-bit C Compilers (created programs run under OS/2 2.x only):
- # - GNU gcc (emx kit 0.8g or newer)
- # - IBM C Set/2 or C Set++ - does not yet work with ASM code
- # - Watcom C/C++/386 - does not yet work with ASM code
- # - Borland C++ - no ASM code yet
-
- # Supported Assemblers:
- # - Microsoft MASM 6.00 with Microsoft C, IBM C, Watcom C
- # - Microsoft MASM 5.xx with Microsoft C, uncomment "masm" line near line 240
- # - GNU as with GNU gcc
-
- # To use, enter "make/nmake/dmake -f makefile.os2"
- # (this makefile depends on its name being "makefile.os2").
-
- # Add -DNO_ASM to CFLAGS and remove match.obj if you do not have masm or ml.
- # Add -DDYN_ALLOC to ASFLAGS if you have defined it in tailor.h or CFLAGS
-
- # Notes on 16-bit (Microsoft C 6.00) compilation:
-
- # The resulting programs can be used under OS/2 protected mode only.
- # A larger stack has to be used for OS/2 because system calls
- # use more stack than under DOS, 8k is recommended by Microsoft.
- # Note that __STDC__ has to be defined explicitly with C 6.00 when -Ze
- # is given, because Microsoft disables __STDC__ when their extensions
- # are enabled. This is different from the C 5.10 behaviour.
-
- # Notes on 32-bit (IBM C/C++, Watcom C, Borland C++ or GNU gcc) compilation:
-
- # The resulting programs can be used under OS/2 protected
- # mode of OS/2 2.x only, not under 1.x and not under DOS.
- # It makes no difference if __STDC__ is defined or not.
- # Watcom C/C++, IBM C/C++ Set and Borland C++ work with DYN_ALLOC only.
-
- # Special Notes on IBM C/C++ compilation:
-
- # The older C compiler (C Set/2) breaks, while optimizing, on deflate.c
- # and trees.c (generates incorrect code). The newer C++ compiler (C Set++)
- # doesn't but instead breaks on crypt.c. See the NFLAGS macro definition
- # and change it's use as needed when you experience problems.
-
- default:
- @echo "Enter $(MAKE) -f makefile.os2 target"
- @echo "where target is one of:"
- @echo " msc mscdos ibm ibmdyn ibmdebug ibmprof"
- @echo " watcom gcc gccdyn gccdebug borland"
-
- # crosscompilation for MS-DOS with MS C 6.00
- mscdos:
- $(MAKE) -f makefile.os2 zips \
- CC="cl -nologo -AL -Oaict -Gs $(FP)" \
- CFLAGS="-W3 -Zep" \
- AS="ml -nologo -Zm -Cp" \
- ASFLAGS="-D__LARGE__" \
- LDFLAGS="-F 2000 -Lr -Fe" \
- LDFLAGS2="-link /noe /exe" \
- OUT="-Fo" \
- OBJ=".obj" \
- OBJA=match.obj
-
- # MS C 6.00 for OS/2, 16-bit
- msc:
- $(MAKE) -f makefile.os2 zips \
- CC="cl -nologo -AL -Ocegit -Gs $(FP)" \
- CFLAGS="-W1 -Zep -J -G2 -D__STDC__ -DOS2" \
- AS="ml -nologo -Zm -Cp" \
- ASFLAGS="-D__LARGE__" \
- LDFLAGS="-F 2000 -Lp -Fe" \
- LDFLAGS2="-link /noe /pm:vio" \
- OUT="-Fo" \
- OBJ=".obj" \
- OBJA="match.obj" \
- DEF="zip16.def"
-
- # IBM C Set/2, statically linked runtime
- ibm:
- $(MAKE) -f makefile.os2 zips \
- CC="icc -Q -O -Gs" \
- CFLAGS="-Sm -Sp1 -DOS2 -DDYN_ALLOC -DNO_ASM" \
- NFLAGS="-O-" \
- AS="ml -nologo" \
- ASFLAGS="-Zm -Cp" \
- LDFLAGS="-Fe" \
- LDFLAGS2="" \
- OUT="-Fo" \
- OBJ=".obj" \
- OBJA="" \
- DEF="zip.def"
-
- # IBM C Set/2, dynamically linked runtime
- ibmdyn:
- $(MAKE) -f makefile.os2 zips \
- CC="icc -Q -O -Gd -Gs" \
- CFLAGS="-Sm -Sp1 -DOS2 -DDYN_ALLOC -DNO_ASM" \
- NFLAGS="-O-" \
- AS="ml -nologo" \
- ASFLAGS="-Zm -Cp" \
- LDFLAGS="-Fe" \
- LDFLAGS2="" \
- OUT="-Fo" \
- OBJ=".obj" \
- OBJA="" \
- DEF="zip.def"
-
- # IBM C Set/2, debug version
- ibmdebug:
- $(MAKE) -f makefile.os2 zips \
- CC="icc -Q -Ti" \
- CFLAGS="-Sm -Sp1 -DOS2 -D__DEBUG_ALLOC__ -DDYN_ALLOC -DNO_ASM" \
- AS="ml -nologo" \
- ASFLAGS="-Zm -Cp" \
- LDFLAGS="-Fe" \
- LDFLAGS2="" \
- OUT="-Fo" \
- OBJ=".obj" \
- OBJA="" \
- DEF="zip.def"
-
- # IBM C Set/2, profiling version for PROFIT
- ibmprof:
- $(MAKE) -f makefile.os2 zips \
- CC="icc -Q -O -Gs -Gh -Ti" \
- CFLAGS="-Sm -Sp1 -DOS2 -DDYN_ALLOC -DNO_ASM" \
- NFLAGS="-O-" \
- AS="ml -nologo" \
- ASFLAGS="-Zm -Cp" \
- LDFLAGS="-Fe" \
- LDFLAGS2="profit.obj" \
- OUT="-Fo" \
- OBJ=".obj" \
- OBJA="" \
- DEF="zip.def"
-
- # Watcom C/386 9.0
- watcom:
- $(MAKE) -f makefile.os2 zips \
- CC="wcl386 -zq -Ox -s" \
- CFLAGS="-Zp1 -DOS2 -DDYN_ALLOC -DNO_ASM" \
- AS="ml -nologo" \
- ASFLAGS="-Zm -Cp" \
- LDFLAGS="-k0x40000 -x -Fe=" \
- LDFLAGS2="" \
- OUT="-Fo" \
- OBJ=".obj" \
- OBJA=""
-
- # Borland C++ (TOPAZ)
- borland:
- $(MAKE) -f makefile.os2 zips \
- CC="bcc -O" \
- CFLAGS="-w- -DOS2 -DDYN_ALLOC -DNO_ASM" \
- AS="ml -nologo" \
- ASFLAGS="-Zm -Cp" \
- LDFLAGS="-e" \
- LDFLAGS2="" \
- OUT="-o" \
- OBJ=".obj" \
- OBJA="" \
- DEF="-sDzip.def"
-
- # emx 0.8f, gcc, OMF format, statically linked C runtime and emx
- gcc:
- $(MAKE) -f makefile.os2 zips \
- CC="gcc -Zomf -Zsys -O" \
- CFLAGS="-DOS2" \
- AS="gcc -Zomf" \
- ASFLAGS="" \
- LDFLAGS="-o ./" \
- LDFLAGS2="-s -los2" \
- OUT="-o" \
- OBJ=".obj" \
- OBJA="matchgcc.obj" \
- DEF="zip.def"
-
- # emx 0.8g, gcc, OMF format, dynamically linked C runtime and emx
- gccdyn:
- $(MAKE) -f makefile.os2 zips \
- CC="gcc -Zomf -Zmtd -O" \
- CFLAGS="-DOS2" \
- AS="gcc -Zomf" \
- ASFLAGS="" \
- LDFLAGS="-o ./" \
- LDFLAGS2="-s -los2" \
- OUT="-o" \
- OBJ=".obj" \
- OBJA="matchgcc.obj" \
- DEF="zip.def"
-
- # emx, gcc, a.out format, with debug info for gdb
- gccdebug:
- $(MAKE) -f makefile.os2 zips \
- CC="gcc -g" \
- CFLAGS="-DOS2" \
- AS="gcc" \
- ASFLAGS="" \
- LDFLAGS="-o ./" \
- LDFLAGS2="-los2" \
- OUT="-o" \
- OBJ=".o" \
- OBJA="matchgcc.o" \
- DEF="zip.def"
-
- OBJZ = zip$(OBJ) zipfile$(OBJ) zipup$(OBJ) fileio$(OBJ) util$(OBJ) \
- globals$(OBJ) deflate$(OBJ) trees$(OBJ) bits$(OBJ) crypt$(OBJ) \
- os2zip$(OBJ)
-
- OBJU = zipfile_$(OBJ) zipup_$(OBJ) fileio_$(OBJ) util_$(OBJ) \
- globals$(OBJ) os2zip_$(OBJ)
-
- OBJN = zipnote$(OBJ) $(OBJU)
- OBJC = zipcloak$(OBJ) crypt_$(OBJ) $(OBJU)
- OBJS = zipsplit$(OBJ) $(OBJU)
-
- .c$(OBJ):
- $(CC) -c $(CFLAGS) $<
-
- zips: zip.exe zipnote.exe zipsplit.exe zipcloak.exe
-
- zip$(OBJ): zip.c zip.h ziperr.h tailor.h revision.h
- zipfile$(OBJ): zipfile.c zip.h ziperr.h tailor.h
- zipup$(OBJ): zipup.c zip.h ziperr.h tailor.h revision.h os2zip.h
- fileio$(OBJ): fileio.c zip.h ziperr.h tailor.h os2zip.h
- util$(OBJ): util.c zip.h ziperr.h tailor.h os2zip.h
- globals$(OBJ): globals.c zip.h ziperr.h tailor.h
- deflate$(OBJ): deflate.c zip.h ziperr.h tailor.h
- trees$(OBJ): trees.c zip.h ziperr.h tailor.h
- bits$(OBJ): bits.c zip.h ziperr.h tailor.h
- crypt$(OBJ): crypt.c zip.h ziperr.h tailor.h
- $(CC) -c $(CFLAGS) $(NFLAGS) $*.c
- os2zip$(OBJ): os2zip.c os2zip.h
-
- match$(OBJ): match.asm
- $(AS) -c $(ASFLAGS) $*.asm
- # use the following for MASM 5.x instead of 6.00
- # masm -ml -t $(ASFLAGS) $*.asm;
-
- match32$(OBJ): match32.asm
- $(AS) -c $(ASFLAGS) $*.asm
-
- matchgcc$(OBJ): match.s
- $(AS) -c $(ASFLAGS) -x assembler-with-cpp -o $@ match.s
-
- zipcloak$(OBJ): zipcloak.c zip.h ziperr.h tailor.h revision.h
- zipnote$(OBJ): zipnote.c zip.h ziperr.h tailor.h revision.h
- zipsplit$(OBJ): zipsplit.c zip.h ziperr.h tailor.h revision.h
-
- zipfile_$(OBJ): zipfile.c zip.h ziperr.h tailor.h
- $(CC) -c $(CFLAGS) -DUTIL $(OUT)$@ zipfile.c
-
- zipup_$(OBJ): zipup.c zip.h ziperr.h tailor.h
- $(CC) -c $(CFLAGS) -DUTIL $(OUT)$@ zipup.c
-
- fileio_$(OBJ): fileio.c zip.h ziperr.h tailor.h
- $(CC) -c $(CFLAGS) -DUTIL $(OUT)$@ fileio.c
-
- util_$(OBJ): util.c zip.h ziperr.h tailor.h os2zip.h
- $(CC) -c $(CFLAGS) -DUTIL $(OUT)$@ util.c
-
- crypt_$(OBJ): crypt.c zip.h ziperr.h tailor.h
- $(CC) -c $(CFLAGS) -DUTIL $(OUT)$@ crypt.c
-
- os2zip_$(OBJ): os2zip.c os2zip.h
- $(CC) -c $(CFLAGS) -DUTIL $(OUT)$@ os2zip.c
-
- zip.exe: $(OBJZ) $(OBJI) $(OBJA)
- $(CC) $(LDFLAGS)$@ $(DEF) $(OBJZ) $(OBJI) $(OBJA) $(LDFLAGS2)
-
- zipcloak.exe: $(OBJC)
- $(CC) $(LDFLAGS)$@ $(DEF) $(OBJC) $(LDFLAGS2)
-
- zipnote.exe: $(OBJN)
- $(CC) $(LDFLAGS)$@ $(DEF) $(OBJN) $(LDFLAGS2)
-
- zipsplit.exe: $(OBJS)
- $(CC) $(LDFLAGS)$@ $(DEF) $(OBJS) $(LDFLAGS2)
-