Metropoli BBS
VIEWER: makefile MODE: TEXT (ASCII)
#===================================================================
#
#   PC/2 - Program Commander/2 Makefile
#
#===================================================================

# ICC Flags
#   /Ti     Include debug information for IPMD
#   /Kb+    Warning, if no prototypes found (prevents from incorrect params)
#   /c      Compile only, we link more than one ressource
#   /Se     Allow IBM C language extentions and migration
#   /Ms     Set the default linkage to _System
#   /Re     Produce Code in IBM C Set/2 Run Time environment
#   /ss     Allow // as comments
#   /Gm+    Link with multitasking libraries, because we're multithreaded
#   /Ge-    Link with libraries that assume a DLL
CFLAGS = /Ti /Kb+ /c /Se /Ms /Re /ss /Gm+
CFLAGSDLL= /Ti /Kb+ /c /Se /Ms /Re /ss /Gm+ /Ge-

# LINK386 Flags
#   /DEBUG  Include debug information for IPMD
#   /NOE    NO Extented dictionary, don't assume any library dependencies
#   /NOD    NO Default library, ignore the library names in object files
#   /A:16   Align on paragraph for PM programs
#   /M      Produce map
#   /BASE   Base over 1Meg ?
LFLAGS = /DEBUG /NOE /NOD /ALIGN:16 /MAP /NOI

# Libraries
#   DD4MBS  Multitasking standard library
#   OS2386  OS/2 2.0 Link library
LIBS = DDE4MBS + OS2386

# Directories
# \.        Executables, help panels, DLLs, documentation, profiles
# \Source   Source, object modules, headers
SRC=Source

CC = icc $(CFLAGS)
CCDLL = icc $(CFLAGSDLL)
LINK = LINK386 $(LFLAGS)

HEADERS = $(SRC)\PC2.h $(SRC)\Error.h

ALL_OBJ = $(SRC)\PC2.obj $(SRC)\Dialog.obj $(SRC)\Utility.obj $(SRC)\Error.obj

all: PC2.exe PC2.hlp PC2Hook.dll

clean:
    -!del *.exe
    -!del $(SRC)\*.obj
    -!del $(SRC)\*.res

save:
    -!del PC2-Save.zip
    zip -9 -r PC2 *
    unzip -t PC2
    copy PC2.zip PC2-Save.zip /v

$(SRC)\Dialog.obj: $(SRC)\Dialog.c $(HEADERS)
    $(CC) /Fo$(SRC)\Dialog.obj $(SRC)\Dialog.c

$(SRC)\Utility.obj: $(SRC)\Utility.c $(HEADERS)
    $(CC) /Fo$(SRC)\Utility.obj $(SRC)\Utility.c

$(SRC)\Error.obj: $(SRC)\Error.c $(SRC)\Error.h
    $(CC) /Fo$(SRC)\Error.obj $(SRC)\Error.c

$(SRC)\PC2.obj: $(SRC)\PC2.c $(HEADERS)
    $(CC) /Fo$(SRC)\PC2.obj $(SRC)\PC2.c

PC2.hlp: $(SRC)\PC2.ipp
    cd $(SRC) >NUL
    ipfcprep PC2.ipp PC2.ipf /D IPFC
    ipfc PC2.ipf
    cd .. >NUL
    copy $(SRC)\PC2.hlp PC2.hlp >NUL
    del $(SRC)\PC2.hlp >NUL

$(SRC)\PC2.l: Makefile
    echo $(ALL_OBJ)             > $(SRC)\PC2.l
    echo PC2.exe                >> $(SRC)\PC2.l
    echo $(SRC)\PC2.map         >> $(SRC)\PC2.l
    echo $(LIBS)                >> $(SRC)\PC2.l
    echo $(SRC)\PC2.def         >> $(SRC)\PC2.l
    echo $(SRC)\Pc2Hook.obj     > $(SRC)\Pc2Hook.l
    echo Pc2Hook.dll            >> $(SRC)\Pc2Hook.l
    echo $(SRC)\PC2Hook.map     >> $(SRC)\Pc2Hook.l
    echo $(LIBS)                >> $(SRC)\Pc2Hook.l
    echo $(SRC)\Pc2Hook.def     >> $(SRC)\Pc2Hook.l

$(SRC)\PC2.res: $(SRC)\PC2.rc $(SRC)\PC2.h $(SRC)\PC2.dlg
    cd $(SRC) >NUL
    rc -r PC2.rc
    cd .. >NUL

$(SRC)\PC2Hook.obj: $(SRC)\PC2Hook.c $(HEADERS)
    $(CCDLL) /Fo$(SRC)\PC2Hook.obj $(SRC)\PC2Hook.c

PC2Hook.dll: $(SRC)\PC2Hook.obj $(SRC)\PC2Hook.def $(SRC)\PC2Hook.l
    $(LINK) @Source\PC2Hook.l

PC2.exe: $(ALL_OBJ) $(SRC)\PC2.def $(SRC)\PC2.l $(SRC)\PC2.res PC2Hook.dll
    $(LINK) @Source\PC2.l
    rc $(SRC)\PC2.res PC2.exe


[ RETURN TO DIRECTORY ]