# Paradyn overall build configuration (Windows/NT) # # $Id: nmake.config,v 1.74 2006/04/13 23:05:08 legendre Exp $ # #USE_VC6 = true #USE_TCL83 = true SUITE_NAME = Paradyn RELEASE_NUM = 6.1 #BUILD_MARK = # Apart from actual "full" releases, don't modify these build Id components. # For personal/experimental builds, feel free to use your core/make.config.local # file to (re-)define BUILD_MARK as you desire. # ***** IMPORTANT INSTALLATION/CONFIGURATION INSTRUCTIONS ***** # Unless your site is set-up identically to that of the Paradyn/DyninstAPI # developers, you should carefully examine the (GNU)make configuration # parameters defined in this file, particularly utilities such as the C/C++ # compilers, perl, flex and bison, and the installed locations and names # for FLEX and RPCPKG. # most "main" modules are only two levels deep, but we need to be able to # change this for those that are deeper in the tree !ifndef TO_CORE !ifdef SHELL TO_CORE = ../.. !else TO_CORE = ..\.. !endif !endif !ifndef PLATFORM PLATFORM = i386-unknown-nt4.0 !endif # Destinations for library and executable installation (relative to core!) # Warning: modification of the build/install structure is not recommended! LIBRARY_DEST = ..\$(PLATFORM)\lib PROGRAM_DEST = ..\$(PLATFORM)\bin # Usually, we look for files, binaries, libs in $(TO_CORE)/..... # But if the file doesn't exist there (i.e. if the user hasn't checked them out # with cvs), then we should look in a backup location. That's what this vrble # is about. It's used several times below in this file. BACKUP_CORE = p:\paradyn\core AR = ar AS = NASM = nasm CC = cl -nologo CXX = cl -nologo LINK = link RANLIB = RPC_LIB = oncrpc.lib #X11DIR = YACC = bison YFLAGS = -d -y LDFLAGS = -nologo PERL = perl # NB: perl v5 or higher required! !ifdef SHELL # use richer Unix shell utilities when they're available! CP = cp MV = mv RM = rm -f MKDIR = mkdir BUILDSTAMP = sh $(TO_CORE)/../scripts/buildstamp -win !else # try and work as much as possible with "vanilla" WinNT! CP = copy MV = move RM = del MKDIR = md BUILDSTAMP = cmd /c $(TO_CORE)\..\scripts\buildstamp.bat !endif # COLLECTOR is only used by purify and quantify #COLLECTOR = # Default module compiler; modules which want $(CC) should redefine # this, **NOT** CC MODCC = $(CXX) MODCFLAGS = $(CXXFLAGS) .SUFFIXES: .I .y .l VPATH = ..\src:$(TO_CORE)\$(LIBRARY_DEST):$(TO_CORE)\..\lib\$(PLATFORM):$(BACKUP_CORE)\..\lib\$(PLATFORM) IFLAGS = -I. -I$(TO_CORE) -I$(TO_CORE)\..\$(PLATFORM)\include #don't inline -- for the files that won't emit template code INLINE_DEFINES = #inline the private members of the class -- templates.o can use this TEMP_INLINE_DEFINES = -DDO_INLINE_P="inline" # inline everything -- the way things should be ALL_INLINE_DEFINES = -DDO_INLINE_F="inline" -DDO_INLINE_P="inline" # NO_OPT_FLAG = 1 # if we don't want OPT_FLAG defined for a particular part of the code # (e.g. rtinst for aix), we just need to define NO_OPT_FLAG before doing # the include of make.config - naim !ifndef NO_OPT_FLAG OPT_FLAG = -Ox !else OPT_FLAG = !endif DEFCFLAGS = -Zi -W3 -GR -EHsc -DNOMINMAX #DEFCFLAGS used to have /wd4995, which vc6-sdk no longer likes CFLAGS = $(DEFCFLAGS) $(OPT_FLAG) $(IFLAGS) \ -D_WIN32_WINNT=0x0500 # ccw 20 june 2001 was 0x0400 CXXFLAGS = $(DEFCFLAGS) $(OPT_FLAG) $(IFLAGS) \ $(UNIFIED_DEF) /Zm1234 -TP -DWIN32 -D_WIN32_WINNT=0x0500 # ccw 20 june 2001 was 0x0400 #JAW-0303 /Zm1234 increases compilation memory # flags for kludge files, won't have warnings generated KFLAGS = $(IFLAGS) $(UNIFIED_DEF) # flags for template files, don't define external template flags # -g is optional in this case -- should be defined at module level TFLAGS = $(IFLAGS) $(OPT_FLAG) $(TEMP_INLINE_DEFINES) $(UNIFIED_DEF) !ifdef DO_INLINE_ALL CXXFLAGS = $(CXXFLAGS) -DDO_INLINE_F="inline" -DDO_INLINE_P="inline" !endif # Start off LIBDIR to point to the user's devel area's paradyn lib directory. # As a backup, in case the user hasn't checked out & compiled some paradyn lib, # we stick in /p/paradyn/lib _second_. LIBDIR = -LIBPATH:$(TO_CORE)\$(LIBRARY_DEST) \ -LIBPATH:$(TO_CORE)\..\$(PLATFORM)\lib \ -LIBPATH:$(TO_CORE)\..\lib\$(PLATFORM) \ -LIBPATH:$(BACKUP_CORE)\..\$(PLATFORM)\lib \ -LIBPATH:$(BACKUP_CORE)\..\lib\$(PLATFORM) \ -LIBPATH:$(RPCPKG_LIB) # Set IGEN to point to $(TO_CORE)/../bin/$(PLATFORM)/igen, if it exists, # else set it to $(BACKUP_CORE)/../bin/$(PLATFORM)/igen, if it exists, # else set it to just "igen" (i.e. assume it's in the user's path) IGEN = $(TO_CORE)\igen\$(PLATFORM) !ifdef NO_IMPLICIT_TEMPLATES #CFLAGS += -fno-implicit-templates #CXXFLAGS += -fno-implicit-templates #KFLAGS += -fno-implicit-templates #TFLAGS += -fno-implicit-templates !endif !ifndef INSTANTIATE_TEMPLATES !ifndef NO_IMPLICIT_TEMPLATES # -fexternal-templates and -Dexternal_templates should both be used or # neither should be used; add them to CFLAGS, CXXFLAGS, and KFLAGS # (but not to TFLAGS). # #CFLAGS = $(CFLAGS) -fexternal-templates -Dexternal_templates #CXXFLAGS = $(CXXFLAGS) -fexternal-templates -Dexternal_templates #KFLAGS = $(KFLAGS) -fexternal-templates -Dexternal_templates !endif !endif # Include any per-user configuration changes; this "local" config file # should *not* be under CVS control, so that it never gets committed. !if exist ($(TO_CORE)\nmake.config.local) !include $(TO_CORE)\nmake.config.local !endif # Set variables to default values if they weren't set in # nmake.config.local !ifdef USES_TCLTK !ifndef TCLTK_DIR !ifdef USE_TCL83 TCLTK_DIR = p:\paradyn\packages\tcl8.3.4 !else TCLTK_DIR = p:\paradyn\packages\tcl8.4.5 !endif !endif !ifndef TCLTK_LIB_DIR TCLTK_LIB_DIR = $(TCLTK_DIR)\lib !endif !ifndef TCLTK_INC_DIR TCLTK_INC_DIR = $(TCLTK_DIR)\include !endif !endif !ifdef USES_FLEX !ifndef FLEX_DIR FLEX_DIR = c:\cygwin\lib !endif !endif !ifndef RPCPKG RPCPKG = p:\paradyn\packages\winnt\oncrpc !endif !ifndef RPCPKG_INC RPCPKG_INC = $(RPCPKG) !endif !ifndef RPCPKG_LIB RPCPKG_LIB = $(RPCPKG)\lib !endif !ifndef NASM NASM = P:\paradyn\packages\nasm\bin\nasmw !endif # ***** EXTERNAL SOFTWARE CONFIGURATION ***** !ifdef USES_TCLTK # TCL2C is used to generate compilable sources from tcl files # Note this needs to be back slashes !ifdef SHELL TCL2C = $(TO_CORE)/../scripts/tcl2c !else TCL2C = $(TO_CORE)\..\scripts\tcl2c !endif TCL2C_GEN_SRCS = tcl2c.C # Specify the Tcl/Tk files to be used !ifndef USE_TCL83 TCLTK_LIBVER_ID = 84t CFLAGS = $(CFLAGS) -DTCLCONST="const" CXXFLAGS = $(CXXFLAGS) -DTCLCONST="const" TFLAGS = $(TFLAGS) -DTCLCONST="const" KFLAGS = $(KFLAGS) -DTCLCONST="const" !else TCLTK_LIBVER_ID = 83 CFLAGS = $(CFLAGS) -DTCLCONST="" CXXFLAGS = $(CXXFLAGS) -DTCLCONST="" TFLAGS = $(TFLAGS) -DTCLCONST="" KFLAGS = $(KFLAGS) -DTCLCONST="" !endif TCLTK_INCLUDES = -I$(TCLTK_INC_DIR) TCLTK_LIBPATH = -LIBPATH:$(TCLTK_LIB_DIR) TCL_LIB = tcl$(TCLTK_LIBVER_ID).lib TK_LIB = tk$(TCLTK_LIBVER_ID).lib TCLTK_LIBS = $(TCL_LIB) $(TK_LIB) IFLAGS = $(IFLAGS) $(TCLTK_INCLUDES) LIBDIR = $(LIBDIR) $(TCLTK_LIBPATH) !endif /* USES_TCLTK */ !ifdef USES_FLEX LEX = flex FLEX_LIB = libfl.a LDFLAGS = $(LDFLAGS) -LIBPATH:$(FLEX_DIR) !endif IFLAGS = $(IFLAGS) -I$(RPCPKG_INC) LIBDIR = $(LIBDIR) -LIBPATH:$(RPCPKG_LIB)