Rev 9615 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
#-*- Makefile -*-.SUFFIXES: .c .cc .cpp .C .f .o .a .def .exp .dll .exe .d# Alternatives CYGWIN (-mno-cygwin), MINGW32 (mingw32 gcc), CROSS (Linux)BUILD=MINGW32# Set this to YES if you use MINGW32 and gcc-2.95.2.1 or later, or cygwin-1.1.# HAVE_SHARED=YES# Where does 'HTML Help Workshop' live? (unused if compiled HTML help is# not requested. Spaces allowed.)HHWDIR=C:/Program Files/HTML Help Workshop# Where does Tcl/Tk live? Spaces allowed.TCL_HOME = c:/packages/TclTCL_VERSION = 83ifeq ($(strip $(BUILD)),CYGWIN)BINPREF=MINGW32CFLAG= -mno-cygwin -DWIN32MINGW32LDFLAG= -mno-cygwin#-L(directory where gcc-2.95.2-mingw-extra.tar.gz was uncompressed)# is needed with earlier versions of cygwin.FLIBS=-lg2cAWK=gawkendififeq ($(strip $(BUILD)),MINGW32)BINPREF=MINGW32CFLAG=MINGW32LDFLAG=FLIBS=-lg2cAWK=gawkendififeq ($(strip $(BUILD)),CROSS)# Next two might be i586- if a pre-built cross-compiler is used.BINPREF=i386-mingw32-# Set this to where the mingw32 include files areHEADER=/packages/R-X/i386-mingw32/includeMINGW32CFLAG=-isystem $(HEADER)MINGW32LDFLAG=FLIBS=-lg2cAWK=awkendifPERL=perlRM=rm -fSED=sedECHO=echoCP=cpMKDIR=mkdirCAT=catCC=$(BINPREF)gcc $(MINGW32CFLAG)CXX=$(BINPREF)g++ $(MINGW32CFLAG)F77=$(BINPREF)g77AS=$(BINPREF)asDLL_LDMAIN=gccDLL=$(BINPREF)$(DLL_LDMAIN) $(MINGW32LDFLAG)DLLTOOL=$(BINPREF)dlltool -k --as $(AS)LINKER=$(BINPREF)gcc $(MINGW32LDFLAG)AR=$(BINPREF)arRANLIB=$(BINPREF)ranlibNM=$(BINPREF)nmCPP=$(CC) -ERESCOMP=$(BINPREF)windres.c.o:$(CC) $(CFLAGS) $($*-CFLAGS) -c $< -o $@.f.o:$(F77) $(FFLAGS) $($*-FFLAGS) -c $< -o $@.cc.o:$(CXX) $(CXXFLAGS) $($*-CXXFLAGS) -c $< -o $@.cpp.o:$(CXX) $(CXXFLAGS) $($*-CXXFLAGS) -c $< -o $@.C.o:$(CXX) $(CXXFLAGS) $($*-CXXFLAGS) -c $< -o $@%.exe:$(LINKER) $(LINKFLAGS) $($*-LINKFLAGS) -o $@ $^ $($*-LIBS) $(LIBS)%.dll %.def:@$(ECHO) ------- Building $@ from $^ --------$(ECHO) LIBRARY $* > $*.def$(ECHO) EXPORTS >> $*.def$(NM) $^ > Defs$(SED) -n '/^........ [BCDRT] _/s/^........ [BCDRT] _/ /p' Defs >> $*.def$(RM) Defsifeq ($(strip $(HAVE_SHARED)),YES)$(DLL) --shared $(DLLFLAGS) $($*-DLLFLAGS) -o $@ $*.def $^ $($*-DLLLIBS) $(DLLLIBS)else$(DLL) -mdll -Wl,--base-file,$*.b $(DLLFLAGS) $($*-DLLFLAGS) -o $@ $^ $($*-DLLLIBS) $(DLLLIBS)$(DLLTOOL) $(DLLTOOLFLAGS) $($*-DLLTOOLFLAGS) --dllname $@ --base-file $*.b --output-exp $*.e --def $*.def$(DLL) -mdll -Wl,--base-file,$*.b $(DLLFLAGS) $($*-DLLFLAGS) -o $@ $*.e $^ $($*-DLLLIBS) $(DLLLIBS)$(DLLTOOL) $(DLLTOOLFLAGS) $($*-DLLTOOLFLAGS) --dllname $@ --base-file $*.b --output-exp $*.e --def $*.def$(DLL) -mdll $(DLLFLAGS) $($*-DLLFLAGS) -o $@ $*.e $^ $($*-DLLLIBS) $(DLLLIBS)$(RM) $*.b $*.eendiflib%.a: %.def@$(ECHO) -------- Building $@ from $^ --------$(DLLTOOL) $(DLLTOOLFLAGS) $($*-DLLTOOLFLAGS) --dllname $*.dll --def $*.def --output-lib lib$*.a%.a:@$(ECHO) -------- Building $@ from $^ --------$(AR) cr $@ $^$(RANLIB) $@%.o: %.rc$(RESCOMP) $(RESFLAGS) $($*-RESFLAGS) -i $< -o $@