home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 18 REXX
/
18-REXX.zip
/
rexxtk12.zip
/
makefile.win32.vc
< prev
next >
Wrap
Makefile
|
2001-07-13
|
9KB
|
261 lines
#
# NMAKE-compatible MAKE file for building Rexx/Tk with VC++
#
# will generate:
#
# rexxtk.dll
# rexxtk.exe
# rexxtktree.dll
# rexxtkcombobox.dll
# rexxtkmclistbox.dll
# rexxtknotebook.dll
#
# Usage: nmake [DEBUG=1]
# [INT=REGINA|OREXX|WINREXX|QUERCUS|UNIREXX|REXXTRANS]
# [rexxtk.dll|rexxtk.exe|rexxtktree.dll|rexxtkcombobox.dll|rexxtkmclistbox.dll|rexxtknotebook.dll]
#
PROJ = rexxtk
ABBREV = rxtk
SRC = rexxtk
VER = 12
VERDOT = 1.2
SRCDIR = $(REXXTK_SRCDIR)
EXTDIR = $(REXXTK_SRCDIR)\extensions
REGINA_REXXLIBS = $(REGINA_BINDIR)\vc\regina.lib
REGINA_REXXINC = -I$(REGINA_SRCDIR) -DUSE_REGINA
OREXX_REXXLIBS = f:\objrexx\api\rexx.lib e:\mhes\objrexx\api\rexxapi.lib
OREXX_REXXINC = -If:\objrexx\api -DUSE_OREXX
WINREXX_REXXLIBS = f:\winrexx\api\rxrexx.lib
WINREXX_REXXINC = -If:\winrexx\api -DUSE_WINREXX
QUERCUS_REXXLIBS = f:\quercus\api\wrexx32.lib
QUERCUS_REXXINC = -If:\quercus\api -DUSE_QUERCUS
UNIREXX_REXXLIBS = f:\unirexx\api\rx.lib
UNIREXX_REXXINC = -If:\unirexx\api -DUSE_UNIREXX
REXXTRANS_REXXLIBS = $(REXXTRANS_BINDIR)\rexxtrans.lib
REXXTRANS_REXXINC = -I$(REXXTRANS_SRCDIR) -DUSE_REXXTRANS
TKINCDIR = $(TKINCDIR)
#---------------------------------------------------------------------
# You should not have to change anything below here...
#---------------------------------------------------------------------
#
# Tcl/Tk version defines
#
#!if "$(TCLVER)X" == "X"
#!message Tcl/Tk version not specified with TCLVER= on make command line
#!error Make aborted!
#!endif
#
# Interpreter specific defines
#
!if "$(INT)" == "REGINA"
REXXLIBS = $(REGINA_REXXLIBS)
REXXINC = $(REGINA_REXXINC)
!elseif "$(INT)" == "OREXX"
REXXLIBS = $(OREXX_REXXLIBS)
REXXINC = $(OREXX_REXXINC)
!elseif "$(INT)" == "WINREXX"
REXXLIBS = $(WINREXX_REXXLIBS)
REXXINC = $(WINREXX_REXXINC)
!elseif "$(INT)" == "QUERCUS"
REXXLIBS = $(QUERCUS_REXXLIBS)
REXXINC = $(QUERCUS_REXXINC)
!elseif "$(INT)" == "UNIREXX"
REXXLIBS = $(UNIREXX_REXXLIBS)
REXXINC = $(UNIREXX_REXXINC)
!elseif "$(INT)" == "REXXTRANS"
REXXLIBS = $(REXXTRANS_REXXLIBS)
REXXINC = $(REXXTRANS_REXXINC)
!else
!message Rexx Interpreter NOT specified via INT macro
!message Valid values are: REGINA OREXX WINREXX QUERCUS UNIREXX REXXTRANS
!error Make aborted!
!endif
EXTRALINK =
CCLIBS = user32.lib
DISTDIR=tmpdir
comcopts = -nologo -W3 -c -DWIN32 -DHAVE_PROTO -I$(TKINCDIR) $(REXXINC) -I$(SRCDIR)
comlopts = -nologo -machine:I386 $(EXTRALINK)
!ifdef DEBUG
copts = $(comcopts) -Od -Z7 -FR
lopts = $(comlopts) -debug
!else
copts = $(comcopts) -Ox
lopts = $(comlopts) -release
!endif
cflagsdll = $(copts) /DDYNAMIC
cflagsexe = $(copts)
lflagsdll = $(lopts) -dll -implib:$(*B).lib
lflagsexe = $(lopts)
objsdll = $(ABBREV)dll.obj $(ABBREV)basedll.obj packdll.obj dll_res.obj
objsexe = loader.obj getopt.obj $(ABBREV)exe.obj $(ABBREV)baseexe.obj packexe.obj exe_res.obj
objstreedll = $(ABBREV)treedll.obj $(ABBREV)dll.obj packdll.obj treedll_res.obj
objscomboboxdll = $(ABBREV)comboboxdll.obj $(ABBREV)dll.obj packdll.obj comboboxdll_res.obj
objsmclistboxdll = $(ABBREV)mclistboxdll.obj $(ABBREV)dll.obj packdll.obj mclistboxdll_res.obj
objsnotebookdll = $(ABBREV)notebookdll.obj $(ABBREV)dll.obj packdll.obj notebookdll_res.obj
ccdll = cl $(cflagsdll) $(listopt)
ccexe = cl $(cflagsexe) $(listopt)
H1=$(SRCDIR)\defines.h
#H2=$(TKINCDIR)\tk.h
H3=$(SRCDIR)\rxpack.h $(SRCDIR)\rxdef.h $(SRCDIR)\$(PROJ).h
all: $(PROJ).exe $(PROJ).dll $(PROJ)tree.dll $(PROJ)combobox.dll $(PROJ)mclistbox.dll $(PROJ)notebook.dll dist
#
# These function only required for EXE
#
getopt.obj: $(SRCDIR)\getopt.c
$(ccexe) /Fogetopt.obj $(SRCDIR)\getopt.c
loader.obj: $(SRCDIR)\loader.c $(H1) $(H3)
$(ccexe) /Foloader.obj $(SRCDIR)\loader.c
#
# These modules are the package-specific modules; both for DLL and EXE
#
$(ABBREV)dll.obj: $(SRCDIR)\$(PROJ).c $(H1) $(H2) $(H3)
$(ccdll) /Fo$(ABBREV)dll.obj $(SRCDIR)\$(PROJ).c
$(ABBREV)exe.obj: $(SRCDIR)\$(PROJ).c $(H1) $(H2) $(H3)
$(ccexe) /Fo$(ABBREV)exe.obj $(SRCDIR)\$(PROJ).c
$(ABBREV)basedll.obj: $(SRCDIR)\$(PROJ)base.c $(H1) $(H2) $(H3)
$(ccdll) /Fo$(ABBREV)basedll.obj $(SRCDIR)\$(PROJ)base.c
$(ABBREV)baseexe.obj: $(SRCDIR)\$(PROJ)base.c $(H1) $(H2) $(H3)
$(ccexe) /Fo$(ABBREV)baseexe.obj $(SRCDIR)\$(PROJ)base.c
$(ABBREV)treedll.obj: $(EXTDIR)\$(PROJ)tree.c $(H1) $(H2) $(H3)
$(ccdll) /Fo$(ABBREV)treedll.obj $(EXTDIR)\$(PROJ)tree.c
$(ABBREV)mclistboxdll.obj: $(EXTDIR)\$(PROJ)mclistbox.c $(H1) $(H2) $(H3)
$(ccdll) -Zm200 /Fo$(ABBREV)mclistboxdll.obj $(EXTDIR)\$(PROJ)mclistbox.c
$(ABBREV)comboboxdll.obj: $(EXTDIR)\$(PROJ)combobox.c $(H1) $(H2) $(H3)
$(ccdll) /Fo$(ABBREV)comboboxdll.obj $(EXTDIR)\$(PROJ)combobox.c
$(ABBREV)notebookdll.obj: $(EXTDIR)\$(PROJ)notebook.c $(H1) $(H2) $(H3)
$(ccdll) /Fo$(ABBREV)notebookdll.obj $(EXTDIR)\$(PROJ)notebook.c
$(ABBREV)treeexe.obj: $(EXTDIR)\$(PROJ)tree.c $(H1) $(H2) $(H3)
$(ccexe) /Fo$(ABBREV)treeexe.obj $(EXTDIR)\$(PROJ)tree.c
$(ABBREV)mclistboxexe.obj: $(EXTDIR)\$(PROJ)mclistbox.c $(H1) $(H2) $(H3)
$(ccexe) /Fo$(ABBREV)mclistboxexe.obj $(EXTDIR)\$(PROJ)mclistbox.c
$(ABBREV)comboboxexe.obj: $(EXTDIR)\$(PROJ)combobox.c $(H1) $(H2) $(H3)
$(ccexe) /Fo$(ABBREV)comboboxexe.obj $(EXTDIR)\$(PROJ)combobox.c
$(ABBREV)notebookexe.obj: $(EXTDIR)\$(PROJ)notebook.c $(H1) $(H2) $(H3)
$(ccexe) /Fo$(ABBREV)notebookexe.obj $(EXTDIR)\$(PROJ)notebook.c
#
# These modules are common modules; both for DLL and EXE
#
packdll.obj: $(SRCDIR)\rxpack.c $(H1) $(H3)
$(ccdll) /Fopackdll.obj $(SRCDIR)\rxpack.c
packexe.obj: $(SRCDIR)\rxpack.c $(H1) $(H3)
$(ccexe) /Fopackexe.obj $(SRCDIR)\rxpack.c
#
# Rules for resources
#
exe_res.obj exe_res.res: $(SRCDIR)\$(PROJ)w32.rc
copy $(SRCDIR)\$(PROJ)w32.ico .
rc /r /foexe_res.res /D$(INT) /I$(SRCDIR) $(SRCDIR)\$(PROJ)w32.rc
cvtres /MACHINE:IX86 /NOLOGO /OUT:exe_res.obj exe_res.res
dll_res.obj dll_res.res: $(SRCDIR)\$(PROJ)w32.rc
copy $(SRCDIR)\$(PROJ)w32.ico .
rc /r /fodll_res.res /DDYNAMIC /D$(INT) /I$(SRCDIR) $(SRCDIR)\$(PROJ)w32.rc
cvtres /MACHINE:IX86 /NOLOGO /OUT:dll_res.obj dll_res.res
treedll_res.obj treedll_res.res: $(EXTDIR)\$(PROJ)treew32.rc
copy $(SRCDIR)\$(PROJ)w32.ico .
rc /r /fotreedll_res.res /DDYNAMIC /D$(INT) /I$(SRCDIR) $(EXTDIR)\$(PROJ)treew32.rc
cvtres /MACHINE:IX86 /NOLOGO /OUT:treedll_res.obj treedll_res.res
mclistboxdll_res.obj mclistboxdll_res.res: $(EXTDIR)\$(PROJ)mclistboxw32.rc
copy $(SRCDIR)\$(PROJ)w32.ico .
rc /r /fomclistboxdll_res.res /DDYNAMIC /D$(INT) /I$(SRCDIR) $(EXTDIR)\$(PROJ)mclistboxw32.rc
cvtres /MACHINE:IX86 /NOLOGO /OUT:mclistboxdll_res.obj mclistboxdll_res.res
comboboxdll_res.obj comboboxdll_res.res: $(EXTDIR)\$(PROJ)comboboxw32.rc
copy $(SRCDIR)\$(PROJ)w32.ico .
rc /r /focomboboxdll_res.res /DDYNAMIC /D$(INT) /I$(SRCDIR) $(EXTDIR)\$(PROJ)comboboxw32.rc
cvtres /MACHINE:IX86 /NOLOGO /OUT:comboboxdll_res.obj comboboxdll_res.res
notebookdll_res.obj notebookdll_res.res: $(EXTDIR)\$(PROJ)notebookw32.rc
copy $(SRCDIR)\$(PROJ)w32.ico .
rc /r /fonotebookdll_res.res /DDYNAMIC /D$(INT) /I$(SRCDIR) $(EXTDIR)\$(PROJ)notebookw32.rc
cvtres /MACHINE:IX86 /NOLOGO /OUT:notebookdll_res.obj notebookdll_res.res
#
# Rules for executables and DLLs
#
$(PROJ).dll: $(objsdll)
link $(lflagsdll) $(objsdll) -out:$(PROJ).dll $(TKLIB) $(CCLIBS) $(REXXLIBS) -def:$(SRCDIR)\$(PROJ)w32.def
$(PROJ).exe: $(objsexe)
link $(lflagsexe) $(objsexe) -out:$(PROJ).exe $(TKLIB) $(CCLIBS) $(REXXLIBS)
$(PROJ)tree.dll: $(objstreedll)
link $(lflagsdll) $(objstreedll) -out:$(PROJ)tree.dll $(TKLIB) $(CCLIBS) $(REXXLIBS) -def:$(EXTDIR)\$(PROJ)treew32.def
$(PROJ)mclistbox.dll: $(objsmclistboxdll)
link $(lflagsdll) $(objsmclistboxdll) -out:$(PROJ)mclistbox.dll $(TKLIB) $(CCLIBS) $(REXXLIBS) -def:$(EXTDIR)\$(PROJ)mclistboxw32.def
$(PROJ)combobox.dll: $(objscomboboxdll)
link $(lflagsdll) $(objscomboboxdll) -out:$(PROJ)combobox.dll $(TKLIB) $(CCLIBS) $(REXXLIBS) -def:$(EXTDIR)\$(PROJ)comboboxw32.def
$(PROJ)notebook.dll: $(objsnotebookdll)
link $(lflagsdll) $(objsnotebookdll) -out:$(PROJ)notebook.dll $(TKLIB) $(CCLIBS) $(REXXLIBS) -def:$(EXTDIR)\$(PROJ)notebookw32.def
#
# Rules for distribution
#
dist: $(DISTDIR)
copy rexxtk.exe $(DISTDIR)
copy rexxtk.dll $(DISTDIR)
copy rexxtktree.dll $(DISTDIR)
copy rexxtkmclistbox.dll $(DISTDIR)
copy rexxtkcombobox.dll $(DISTDIR)
copy rexxtknotebook.dll $(DISTDIR)
copy $(SRCDIR)\demo\testtk.rexx $(DISTDIR)
copy $(SRCDIR)\file_id.diz.w32 $(DISTDIR)\file_id.diz
copy $(SRCDIR)\COPYING-LIB $(DISTDIR)
copy $(SRCDIR)\HISTORY $(DISTDIR)
copy $(SRCDIR)\README $(DISTDIR)
copy $(SRCDIR)\TODO $(DISTDIR)
cd $(DISTDIR)
-del *.zip
zip rexxtk$(VER)_w32 *
$(DISTDIR):
-mkdir $(DISTDIR)
zip:
zip rxcurs$(VER) $(SRCDIR)\rxpack.c $(SRCDIR)\rxpack.h $(SRCDIR)\loader.c $(SRCDIR)\curses.c
zip rxcurs$(VER) $(SRCDIR)\getopt.c $(SRCDIR)\defines.h $(SRCDIR)\rxdef.h
zip rxcurs$(VER) $(SRCDIR)\*.def $(SRCDIR)\makefile.* $(SRCDIR)\*.ico $(SRCDIR)\*.rc $(SRCDIR)\file_id.diz.*
zip rxcurs$(VER) $(SRCDIR)\demo\hanoi.rexx $(SRCDIR)\def2exp.rexx
zip rxcurs$(VER) $(SRCDIR)\Makefile.in $(SRCDIR)\install-sh $(SRCDIR)\config.h.in $(SRCDIR)\configure.in
zip rxcurs$(VER) $(SRCDIR)\configure $(SRCDIR)\aclocal.m4