The R Project SVN R

Rev

Rev 6493 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

# Makefile for unzip library for native Win32-Intel ports of gcc.
#
# First version: Cosmin Truta <cosmint@cs.ubbcluj.ro>, Dec 1997.
# Last revision: Christian Spieler, 29-Apr-1998
# This version Brian Ripley 2-May-1999

include ../../MkRules

### Optional section

# Optional nonstandard preprocessor flags (as -DUSE_ZLIB or -DUSE_SMITH_CODE)
# should be added to the environment via "set LOCAL_UNZIP=-DFOO" or added
# to the declaration of LOCFLAGS here:
LOCFLAGS = $(LOCAL_UNZIP)


### Compiler-specific section

# ------------ GNU C ------------
#CC = gcc

#AS = as
AS = $(CC)

#LD = ld
LD = $(CC)

# Quiet
CC_QUIET_OPT =
AS_QUIET_OPT = $(CC_QUIET_OPT)
LD_QUIET_OPT = $(CC_QUIET_OPT)

# Warnings
CC_WARN_OPT = -Wall
AS_WARN_OPT = $(CC_WARN_OPT)
LD_WARN_OPT =

# Debug version
CC_DEBUG_OPT = -g
AS_DEBUG_OPT = $(CC_DEBUG_OPT)
LD_DEBUG_OPT = $(CC_DEBUG_OPT)

# Release version
CC_RELEASE_OPT =
AS_RELEASE_OPT =
LD_RELEASE_OPT = -s

# Smallest code
CC_SIZE_OPT = -O1

# Fastest code
CC_SPEED_OPT = -O2

# Output object file name
CC_OUT_OPT = -o

# Other specific options
CC_SPECIFIC_OPT = -c -DASM_CRC -DWIN32
AS_SPECIFIC_OPT = -c
LD_SPECIFIC_OPT = -o $@

# Libraries for the debug & release version
LD_RELEASE_LIBS = -luser32 -ladvapi32
LD_DEBUG_LIBS = $(LD_RELEASE_LIBS)


### System-specific section

# Suffixes
OBJ = .o
EXE = .exe

.SUFFIXES: .c .S $(OBJ) $(EXE)

# Commands
#RM = rm -f

OBJS = api.o crc_i386.o crctab.o crypt.o explode.o extract.o fileio.o \
globals.o inflate.o list.o match.o nt.o process.o ttyio.o unreduce.o \
unshrink.o win32.o windll.o zipinfo.o

all: unzip32.a

unzip32.a: $(OBJS)
    $(AR) cr $@ *.o
    $(RANLIB) $@

### General section

CFLAGS  = $(CC_SPECIFIC_OPT) $(CC_QUIET_OPT) $(CC_WARN_OPT) $(LOCFLAGS) \
 $(CC_OUT_OPT) $@
ASFLAGS = $(AS_SPECIFIC_OPT) $(AS_QUIET_OPT) $(AS_WARN_OPT) $(LOCFLAGS)
LDFLAGS = $(LD_SPECIFIC_OPT) $(LD_QUIET_OPT) $(LD_WARN_OPT)

CVER     = $(CC_RELEASE_OPT)
ASVER    = $(AS_RELEASE_OPT)
LDVER    = $(LD_RELEASE_OPT)
GENFLAGS = $(CC_SPEED_OPT) -DDLL -DWINDLL -D_WINDOWS -I.
FFLAGS   = $(CC_SPEED_OPT) -DFUNZIP
SFXFLAGS = $(CC_SIZE_OPT) -DSFX -DSFX_EXDIR
LDLIBS   = $(LD_RELEASE_LIBS)


UNZIP_H = unzip.h unzpriv.h globals.h win32/w32cfg.h


# How to compile sources
.c$(OBJ):
    $(CC) $(CFLAGS) $(CVER) $(GENFLAGS) $<
.S$(OBJ):
    $(AS) $(ASFLAGS) $(ASVER) $(GENFLAGS) $<

# Dependencies
crc32$(OBJ):    crc32.c $(UNZIP_H) zip.h
crctab$(OBJ):   crctab.c $(UNZIP_H) zip.h
crypt$(OBJ):    crypt.c $(UNZIP_H) zip.h crypt.h ttyio.h
envargs$(OBJ):  envargs.c $(UNZIP_H)
explode$(OBJ):  explode.c $(UNZIP_H)
extract$(OBJ):  extract.c $(UNZIP_H) crypt.h
fileio$(OBJ):   fileio.c $(UNZIP_H) crypt.h ttyio.h ebcdic.h
funzip$(OBJ):   funzip.c $(UNZIP_H) crypt.h ttyio.h tables.h
globals$(OBJ):  globals.c $(UNZIP_H)
inflate$(OBJ):  inflate.c inflate.h $(UNZIP_H)
list$(OBJ):     list.c $(UNZIP_H)
match$(OBJ):    match.c $(UNZIP_H)
process$(OBJ):  process.c $(UNZIP_H)
ttyio$(OBJ):    ttyio.c $(UNZIP_H) zip.h crypt.h ttyio.h
unreduce$(OBJ): unreduce.c $(UNZIP_H)
unshrink$(OBJ): unshrink.c $(UNZIP_H)
unzip$(OBJ):    unzip.c $(UNZIP_H) crypt.h version.h consts.h
zipinfo$(OBJ):  zipinfo.c $(UNZIP_H)
crc_i386$(OBJ): crc_i386.S

win32$(OBJ): win32/win32.c $(UNZIP_H) win32/nt.h
    $(CC) $(CFLAGS) $(CVER) $(GENFLAGS) -I. win32/win32.c

nt$(OBJ): win32/nt.c win32/nt.h
    $(CC) $(CFLAGS) $(CVER) $(GENFLAGS) -I. win32/nt.c

win32x$(OBJ): win32/win32.c $(UNZIP_H) win32/nt.h       # unzipsfx only
    $(CC) $(CFLAGS) $(CVER) $(SFXFLAGS) -I. win32/win32.c

ntx$(OBJ): win32/nt.c win32/nt.h                # unzipsfx only
    $(CC) $(CFLAGS) $(CVER) $(SFXFLAGS) -I. win32/nt.c

win32f$(OBJ): win32/win32.c $(UNZIP_H) win32/nt.h       # funzip only
    $(CC) $(CFLAGS) $(CVER) $(FFLAGS) -I. -UHAVE_INT64 win32/win32.c

cryptf$(OBJ): crypt.c $(UNZIP_H) zip.h crypt.h ttyio.h      # funzip only
    $(CC) $(CFLAGS) $(CVER) $(FFLAGS) crypt.c

extractx$(OBJ): extract.c $(UNZIP_H) crypt.h            # unzipsfx only
    $(CC) $(CFLAGS) $(CVER) $(SFXFLAGS) extract.c

fileiox$(OBJ):   fileio.c $(UNZIP_H) crypt.h ttyio.h ebcdic.h   # unzipsfx only
    $(CC) $(CFLAGS) $(CVER) $(SFXFLAGS) fileio.c

globalsx$(OBJ): globals.c $(UNZIP_H)                # unzipsfx only
    $(CC) $(CFLAGS) $(CVER) $(SFXFLAGS) globals.c

globalsf$(OBJ): globals.c $(UNZIP_H)                # funzip only
    $(CC) $(CFLAGS) $(CVER) $(FFLAGS) globals.c

inflatex$(OBJ): inflate.c inflate.h $(UNZIP_H) crypt.h      # unzipsfx only
    $(CC) $(CFLAGS) $(CVER) $(SFXFLAGS) inflate.c

inflatef$(OBJ): inflate.c inflate.h $(UNZIP_H) crypt.h      # funzip only
    $(CC) $(CFLAGS) $(CVER) $(FFLAGS) inflate.c

matchx$(OBJ): match.c $(UNZIP_H)                # unzipsfx only
    $(CC) $(CFLAGS) $(CVER) $(SFXFLAGS) match.c

processx$(OBJ): process.c $(UNZIP_H)                # unzipsfx only
    $(CC) $(CFLAGS) $(CVER) $(SFXFLAGS) process.c

ttyiox$(OBJ): ttyio.c $(UNZIP_H) zip.h crypt.h ttyio.h      # unzipsfx only
    $(CC) $(CFLAGS) $(CVER) $(SFXFLAGS) ttyio.c

ttyiof$(OBJ): ttyio.c $(UNZIP_H) zip.h crypt.h ttyio.h      # funzip only
    $(CC) $(CFLAGS) $(CVER) $(FFLAGS) ttyio.c

unzipsfx$(OBJ): unzip.c $(UNZIP_H) crypt.h version.h consts.h   # unzipsfx only
    $(CC) $(CFLAGS) $(CVER) $(SFXFLAGS) unzip.c

windll.o: windll/windll.c
    $(CC) $(CFLAGS) $(CVER) $(GENFLAGS) -o $@ $^

clean:
    $(RM) *$(OBJ)
    $(RM) unzip32.a