home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 18 REXX
/
18-REXX.zip
/
rexxtk12.zip
/
makefile.os2.emx
< prev
next >
Wrap
Makefile
|
2001-02-27
|
8KB
|
255 lines
#
# GNU MAKE-compatible MAKE file for building Rexx/Tk with EMX
#
# will generate:
#
# rexxtk.dll
# rexxtk.exe
# rexxtktree.dll
# rexxtkcombobox.dll
# rexxtkmclistbox.dll
# rexxtknotebook.dll
#
# Usage: gmake [DEBUG=Y]
# [INT=REGINA|OS2REXX|REXXTRANS]
# [rexxtk.dll|rexxtk.exe|rexxtktree.dll|rexxtkcombobox.dll|rexxtkmclistbox.dll|rexxtknotebook.dll]
#
PROJ = rexxtk
ABBREV = rexxtk
SRC = rexxtk
VER = 12
VERDOT = 1.2
REXXTK_SRCDIR = .
SRCDIR = $(REXXTK_SRCDIR)
EXTDIR = $(REXXTK_SRCDIR)\extensions
REGINA_REXXLIBEXE = $(REGINA_SRCDIR)/emx/regina.a
REGINA_REXXLIBDLL = $(REGINA_SRCDIR)/emx/regina.lib
REGINA_REXXINC = -I$(REGINA_SRCDIR) -DUSE_REGINA
OS2REXX_REXXLIBEXE =
OS2REXX_REXXLIBDLL =
OS2REXX_REXXINC = -DUSE_OS2REXX
REXXTRANS_REXXLIBEXE = $(REXXTRANS_SRCDIR)/emx/rexxtrans.a
REXXTRANS_REXXLIBDLL = $(REXXTRANS_SRCDIR)/emx/rexxtrans.lib
REXXTRANS_REXXINC = -I$(REXXTRANS_SRCDIR) -DUSE_REXXTRANS
TKLIBEXE = c:\tcl805\lib\tk80.$(ARCH)
TKLIBDLL = c:\tcl805\lib\tk80.$(ARCH)
TCLLIBEXE = c:\tcl805\lib\tcl80.$(ARCH)
TCLLIBDLL = c:\tcl805\lib\tcl80.$(ARCH)
TCL_INCDIR = -Ic:/tcl805/include
TK_INCDIR = -Ic:/tcl805/include
#TKLIBEXE = e:\tk8.0.5\os2\tk80.$(ARCH)
#TKLIBDLL = e:\tk8.0.5\os2\tk80.$(ARCH)
#TCLLIBEXE = e:\tcl8.0.5\os2\tcl80.$(ARCH)
#TCLLIBDLL = e:\tcl8.0.5\os2\tcl80.$(ARCH)
#TCL_INCDIR = -I/tcl8.0.5/generic
#TK_INCDIR = -I/tk8.0.5/generic -I/tk8.0.5/xlib
#TKLIBDLL = tk80.a
#TKLIBEXE = $(TKLIBDLL)
#TCLLIBDLL = tcl80.a
#TCLLIBEXE = $(TCLLIBDLL)
#TCL_INCDIR = -I/tmp/tcl/include
#TK_INCDIR = -I/tmp/tcl/include
#---------------------------------------------------------------------
# You should not have to change anything below here...
#---------------------------------------------------------------------
#
# Interpreter specific defines
#
ifeq ($(INT),REGINA)
REXXLIBEXE = $(REGINA_REXXLIBEXE)
REXXLIBDLL = $(REGINA_REXXLIBDLL)
REXXINC = $(REGINA_REXXINC)
else
ifeq ($(INT),OS2REXX)
REXXLIBEXE = $(OS2REXX_REXXLIBEXE)
REXXLIBDLL = $(OS2REXX_REXXLIBDLL)
REXXINC = $(OS2REXX_REXXINC)
else
ifeq ($(INT),REXXTRANS)
REXXLIBEXE = $(REXXTRANS_REXXLIBEXE)
REXXLIBDLL = $(REXXTRANS_REXXLIBDLL)
REXXINC = $(REXXTRANS_REXXINC)
else
#echo Rexx Interpreter NOT specified via INT macro.Valid values are: REGINA OS2REXX REXXTRANS
endif
endif
endif
MYLDEXTRA = emxbind
# Format is OMF (.obj) or A.OUT (.o)
#FORMAT = A.OUT
FORMAT = OMF
ifeq ($(FORMAT),A.OUT)
ARCH=a
OBJ=o
OUTPUTFLAG=
EXTRALINK =
else
ARCH=lib
OBJ=obj
OUTPUTFLAG=-Zomf
EXTRALINK = -Zlinker /FARCALLTRANSLATION -Zlinker /RUNFROMVDM -Zlinker /BASE:0x10000 -Zlinker /ALIGN:2
endif
EXTRALINK =
CC = gcc
LINK = gcc
LINK_OUT = -o
#LINK = ilink
#LINK_OUT = /OUT:
#comcopts = -c -Wall -s -mprobe -m486 -Zomf -Zmtd -DOS2 -D__OS2__ -DHAVE_PROTO -DHAVE_GETOPT -I$(SRCDIR) $(REXXINC) $(TCL_INCDIR) $(TK_INCDIR)
comcopts = -c -mprobe -m486 $(OUTPUTFLAG) -DOS2 -D__OS2__ -DHAVE_PROTO -I$(SRCDIR) $(REXXINC) $(TCL_INCDIR) $(TK_INCDIR)
comlopts = $(EXTRALINK) $(OUTPUTFLAG) -Zmtd
ifeq ($(DEBUG),Y)
#copts = -g $(comcopts) -DDEBUG
#lopts = -g $(comlopts)
copts = -g -fhandle-exceptions $(comcopts) -DDEBUG
lopts = $(comlopts)
else
#copts = -O3 -fomit-frame-pointer $(comcopts)
#lopts = -O3 -fomit-frame-pointer $(comlopts)
copts = -O3 -s $(comcopts)
lopts = $(comlopts)
endif
cflagsdll = $(copts) -DDYNAMIC_LIBRARY -Zdll -Zcrtdll
cflagsexe = $(copts)
lflagsdll = $(lopts) -Zdll -Zcrtdll
lflagsexe = $(lopts)
#lflagsdll = $(lopts) /DLL
#lflagsexe = $(lopts) /EXE
objsdll = $(ABBREV)dll.$(OBJ) $(ABBREV)base.$(OBJ) packdll.$(OBJ)
objsexe = loader.$(OBJ) $(ABBREV)base.$(OBJ) $(ABBREV)exe.$(OBJ) \
packexe.$(OBJ) getopt.$(OBJ)
objstreedll = $(ABBREV)treedll.obj $(ABBREV)dll.obj packdll.obj
objscomboboxdll = $(ABBREV)comboboxdll.obj $(ABBREV)dll.obj packdll.obj
objsmclistboxdll = $(ABBREV)mclistboxdll.obj $(ABBREV)dll.obj packdll.obj
objsnotebookdll = $(ABBREV)notebookdll.obj $(ABBREV)dll.obj packdll.obj
ccdll = $(CC) $(cflagsdll) $(listopt)
ccexe = $(CC) $(cflagsexe) $(listopt)
H1=$(SRCDIR)/defines.h
H3=$(SRCDIR)/rxpack.h $(SRCDIR)/rxdef.h $(SRCDIR)/apphead.h
all: $(PROJ).exe $(PROJ).dll $(PROJ)tree.dll $(PROJ)combobox.dll $(PROJ)mclistbox.dll $(PROJ)notebook.dll
#
# These function only required for EXE
#
getopt.$(OBJ): $(SRCDIR)/getopt.c
$(ccexe) -ogetopt.$(OBJ) $(SRCDIR)/getopt.c
loader.$(OBJ): $(SRCDIR)/loader.c $(H1) $(H3)
$(ccexe) -oloader.$(OBJ) $(SRCDIR)/loader.c
#
# These modules are the package-specific modules; both for DLL and EXE
#
$(ABBREV)dll.$(OBJ): $(SRCDIR)/$(SRC).c $(H1) $(H2) $(H3)
$(ccdll) -o$(ABBREV)dll.$(OBJ) $(SRCDIR)/$(SRC).c
$(ABBREV)exe.$(OBJ): $(SRCDIR)/$(SRC).c $(H1) $(H2) $(H3)
$(ccexe) -o$(ABBREV)exe.$(OBJ) $(SRCDIR)/$(SRC).c
$(ABBREV)base.$(OBJ): $(SRCDIR)/$(ABBREV)base.c
$(ccexe) -o$(ABBREV)base.$(OBJ) $(SRCDIR)/$(ABBREV)base.c
$(ABBREV)treedll.$(OBJ): $(EXTDIR)\$(PROJ)tree.c $(H1) $(H2) $(H3)
$(ccdll) -o$(ABBREV)treedll.$(OBJ) $(EXTDIR)\$(PROJ)tree.c
$(ABBREV)notebookdll.$(OBJ): $(EXTDIR)\$(PROJ)notebook.c $(H1) $(H2) $(H3)
$(ccdll) -o$(ABBREV)notebookdll.$(OBJ) $(EXTDIR)\$(PROJ)notebook.c
$(ABBREV)mclistboxdll.$(OBJ): $(EXTDIR)\$(PROJ)mclistbox.c $(H1) $(H2) $(H3)
$(ccdll) -o$(ABBREV)mclistboxdll.$(OBJ) $(EXTDIR)\$(PROJ)mclistbox.c
$(ABBREV)comboboxdll.$(OBJ): $(EXTDIR)\$(PROJ)combobox.c $(H1) $(H2) $(H3)
$(ccdll) -o$(ABBREV)comboboxdll.$(OBJ) $(EXTDIR)\$(PROJ)combobox.c
$(ABBREV)treeexe.$(OBJ): $(EXTDIR)\$(PROJ)tree.c $(H1) $(H2) $(H3)
$(ccexe) -o$(ABBREV)treeexe.$(OBJ) $(EXTDIR)\$(PROJ)tree.c
$(ABBREV)notebookexe.$(OBJ): $(EXTDIR)\$(PROJ)notebook.c $(H1) $(H2) $(H3)
$(ccexe) -o$(ABBREV)notebookexe.$(OBJ) $(EXTDIR)\$(PROJ)notebook.c
$(ABBREV)mclistboxexe.$(OBJ): $(EXTDIR)\$(PROJ)mclistbox.c $(H1) $(H2) $(H3)
$(ccexe) -o$(ABBREV)mclistboxexe.$(OBJ) $(EXTDIR)\$(PROJ)mclistbox.c
$(ABBREV)comboboxexe.$(OBJ): $(EXTDIR)\$(PROJ)combobox.c $(H1) $(H2) $(H3)
$(ccexe) -o$(ABBREV)comboboxexe.$(OBJ) $(EXTDIR)\$(PROJ)combobox.c
#
# These modules are common modules; both for DLL and EXE
#
packdll.$(OBJ): $(SRCDIR)/rxpack.c $(H1) $(H3)
$(ccdll) -opackdll.$(OBJ) $(SRCDIR)/rxpack.c
packexe.$(OBJ): $(SRCDIR)/rxpack.c $(H1) $(H3)
$(ccexe) -opackexe.$(OBJ) $(SRCDIR)/rxpack.c
#
# Rules for resources
#
$(PROJ)os2.res: $(SRCDIR)/$(PROJ)os2.rc
rc -r -p -x1 $< $@
$(PROJ)treeos2.res: $(EXTDIR)\$(PROJ)treeos2.rc
rc -r -p -x1 $< $@
$(PROJ)notebookos2.res: $(EXTDIR)\$(PROJ)notebookos2.rc
rc -r -p -x1 $< $@
$(PROJ)mclistboxos2.res: $(EXTDIR)\$(PROJ)mclistboxos2.rc
rc -r -p -x1 $< $@
$(PROJ)comboboxos2.res: $(EXTDIR)\$(PROJ)comboboxos2.rc
rc -r -p -x1 $< $@
#
# Rules for executables and DLLs
#
$(PROJ).dll: $(objsdll) $(PROJ)os2.res
$(LINK) $(lflagsdll) $(objsdll) $(LINK_OUT)$@ $(TCLLIBDLL) $(TKLIBDLL) \
$(REXXLIBDLL) $(SRCDIR)/$(PROJ)os2_dll.def
rc -p -x1 $(PROJ)os2.res $@
$(PROJ)tree.dll: $(objstreedll) $(PROJ)treeos2.res
$(LINK) $(lflagsdll) $(objstreedll) $(LINK_OUT)$@ $(TCLLIBDLL) \
$(TKLIBDLL) $(REXXLIBDLL) $(EXTDIR)/$(PROJ)treeos2.def
rc -p -x1 $(PROJ)treeos2.res $@
$(PROJ)notebook.dll: $(objsnotebookdll) $(PROJ)notebookos2.res
$(LINK) $(lflagsdll) $(objsnotebookdll) $(LINK_OUT)$@ $(TCLLIBDLL) \
$(TKLIBDLL) $(REXXLIBDLL) $(EXTDIR)/$(PROJ)notebookos2.def
rc -p -x1 $(PROJ)notebookos2.res $@
$(PROJ)mclistbox.dll: $(objsmclistboxdll) $(PROJ)mclistboxos2.res
$(LINK) $(lflagsdll) $(objsmclistboxdll) $(LINK_OUT)$@ $(TCLLIBDLL) \
$(TKLIBDLL) $(REXXLIBDLL) $(EXTDIR)/$(PROJ)mclistboxos2.def
rc -p -x1 $(PROJ)mclistboxos2.res $@
$(PROJ)combobox.dll: $(objscomboboxdll) $(PROJ)comboboxos2.res
$(LINK) $(lflagsdll) $(objscomboboxdll) $(LINK_OUT)$@ $(TCLLIBDLL) \
$(TKLIBDLL) $(REXXLIBDLL) $(EXTDIR)/$(PROJ)comboboxos2.def
rc -p -x1 $(PROJ)comboboxos2.res $@
#$(PROJ).exe: $(PROJ)
# $(MYLDEXTRA) $(PROJ)
$(PROJ).exe: $(objsexe) $(PROJ)os2.res
$(LINK) $(lflagsexe) $(objsexe) $(LINK_OUT)$@ $(TCLLIBEXE) $(TKLIBEXE) \
$(REXXLIBEXE) $(SRCDIR)/$(PROJ)os2.def
rc -p -x1 $(PROJ)os2.res $@