## ## $Id:$ ## ## Build environment configuration parameters ## Copyright (C) 1999 by Bernardo Innocenti ########################################################### # Package configuration ########################################################### # set to OS30_ONLY to leave out support for old V37 # set to ANY_OS to make an executable for V37 with V39 support # OSVER := OS30_ONLY # CPU to compile for (eg: "68020"). # CPU := 68020 # Compiler to use. Possible options are: # sc - SAS/C 6.58 or better # gcc - gcc 2.7.2 or EGCS 1.1b # vbcc - Not yet supported # stormc - Not yet supported # COMPILER := gcc # Set to 1 to build debug executables # DEBUG := 0 # Minimum stack size to allocate # STACKSIZE := 16384 ########################################################### # Paths ########################################################### # PROJNAME := XModule ifeq ($(COMPILER),gcc) TOP := /SC/src/xm else TOP := SC:src/xm endif OBJDIR := $(TOP)/obj INCDIR := $(TOP)/include DISTPREFIX := $(TOP)/dist ARCNAME := $(DISTPREFIX)/$(PROJNAME).lzx SRCARCNAME := $(DISTPREFIX)/$(PROJNAME)_src.lzx ########################################################### # Tools used in the Makefiles ########################################################### # MAKEINFO := GG:bin/makeinfo FD2PRAGMA := fd2pragma FLEXCAT := FlexCat ARCHIVER := lzx -3 -e -r a ifeq ($(COMPILER),sc) CC := sc AS := PhxAss OBJCONV := echo >NIL: LD := PhxLnk CP := copy CLONE MV := rename RM := delete endif ifeq ($(COMPILER),gcc) CC := gcc AS := PhxAss OBJCONV := hunk2aout LD := gcc CP := cp -p MV := mv RM := rm endif ########################################################### # SAS/C compiler, assembler and linker flags ########################################################### # ifeq ($(COMPILER),sc) CMN_CFLAGS := CODE=FAR PARM=REGISTERS STRMERGE STRINGSCONST NOSTKCHK AFP \ UTILLIB MCCONS NOMINC NOLINK CNEST INCDIR=$(TOP) INCDIR=$(INCDIR) OPT_CFLAGS := OPTIMIZE OPTTIME OPTINLINELOCAL DBG_CFLAGS := DEBUG=FULLFLUSH DEF DEBUG CC_OUT := OBJNAME CMN_ASFLAGS := SMALLDATA SMALLCODE ALIGN MACHINE=$(CPU) \ INCPATH=INCLUDE:,$(INCDIR) NOEXE QUIET OPT_ASFLAGS := OPT ! DBG_ASFLAGS := SYMDEBUG LINEDEBUG SET "DEBUG" CMN_LDFLAGS := SMALLCODE SMALLDATA DEFINE \ "__CXM33=__UCXM33,__CXD33=__UCXD33,__CXM22=__UCXM22,__CXD22=__UCXD22" OPT_LDFLAGS := NODEBUG DBG_LDFLAGS := NOSHORTRELOCS CMN_LIBS := LIB:sc.lib LIB:small.lib OPT_LIBS := DBG_LIBS := LIB:debug.lib # GST usage must be disabled due to bugs in SAS/C 6.58 # GST := $(OBJDIR)/$(PROJNAME).gst # CMN_CFLAGS += GST=$(GST) # Old flags used with slink: # CMN_LDFLAGS += SMALLCODE SMALLDATA NOALVS NOICONS XREF \ # DEFINE __CXM33=__UCXM33 DEFINE __CXD33=__UCXD33 \ # DEFINE __CXM22=__UCXM22 DEFINE __CXD22=__UCXD22 # DBG_LDFLAGS += BATCH ADDSYM endif ########################################################### # GCC compiler, assembler and linker flags ########################################################### # ifeq ($(COMPILER),gcc) CMN_CFLAGS := -c -Wall -W -Wundef -Wimplicit -Wreturn-type \ -m$(CPU) -D$(OSVER) -I$(INCDIR) -I$(TOP) -I/gg/include -I/include OPT_CFLAGS := -O2 -msmall-code -mregparm -fomit-frame-pointer \ -funroll-loops -fstrict-aliasing -finline-functions \ -fno-implement-inlines DBG_CFLAGS := -DDEBUG -g CC_OUT := -o CMN_ASFLAGS := SMALLDATA SMALLCODE ALIGN MACHINE=$(CPU) \ INCPATH=INCLUDE:,$(INCDIR) NOEXE QUIET OPT_ASFLAGS := OPT ! DBG_ASFLAGS := SYMDEBUG LINEDEBUG SET "DEBUG" OPT_LDFLAGS := -s DBG_LDFLAGS := CMN_LDFLAGS := endif ########################################################### # Build flags for Debug/Release version ########################################################### # ifeq ($(DEBUG),1) CFLAGS := $(CMN_CFLAGS) $(DBG_CFLAGS) ASFLAGS := $(CMN_ASFLAGS) $(DBG_ASFLAGS) LDFLAGS := $(CMN_LDFLAGS) $(DBG_LDFLAGS) LIBS := $(CMN_LIBS) $(DBG_LIBS) else CFLAGS := $(CMN_CFLAGS) $(OPT_CFLAGS) ASFLAGS := $(CMN_ASFLAGS) $(OPT_ASFLAGS) LDFLAGS := $(CMN_LDFLAGS) $(OPT_LDFLAGS) LIBS := $(CMN_LIBS) $(OPT_LIBS) endif ########################################################### # GNU make quirks ########################################################### # # clear implicit rules for known suffixes such as .c and .o .SUFFIXES: