# Paradyn overall build configuration (Windows/NT) # # $Id: nmake.config,v 1.17 1999/03/03 23:32:06 pcroth Exp $ # SUITE_NAME = Paradyn RELEASE_NUM = 2.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. # uncomment/comment the following line to build with/without PVM support #INCLUDE_PVM_SUPPORT=true # 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 TO_CORE = ..\.. !endif # Destinations for library and executable installation (relative to core!) # Warning: modification of the build/install structure is not recommended! LIBRARY_DEST = ..\lib\$(PLATFORM) PROGRAM_DEST = ..\bin\$(PLATFORM) # 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 = CC = cl -nologo CXX = cl -nologo LEX = p:\paradyn\packages\winnt\bin\flex FLEX_LIB = p:\paradyn\packages\winnt\lib\libfl.lib TCLTK_DIR = p:\paradyn\packages\tcl8.0p4 RANLIB = RPCPKG = p:\paradyn\packages\winnt\oncrpc RPC_LIB = oncrpc.lib #X11DIR = YACC = bison YFLAGS = -d -y #LDFLAGS = -link 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 # generate build vouchers !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 & quantify #COLLECTOR = ARCH_DEF = -Di386_unknown_nt4_0 # 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$(RPCPKG) #ASFLAGS = -P $(ARCH_DEF) #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" # 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 !endif DEFCFLAGS = -Z7 -W3 -DNOMINMAX CFLAGS = $(DEFCFLAGS) $(OPT_FLAG) $(IFLAGS) \ $(ARCH_DEF) -D_WIN32_WINNT=0x0400 CXXFLAGS = $(DEFCFLAGS) $(OPT_FLAG) $(IFLAGS) \ $(ARCH_DEF) -TP -DWIN32 -D_WIN32_WINNT=0x0400 # flags for kludge files, won't have warnings generated KFLAGS = $(IFLAGS) $(ARCH_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) $(ARCH_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)\..\lib\$(PLATFORM) \ -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 # ***** EXTERNAL SOFTWARE CONFIGURATION ***** !ifdef INCLUDE_PVM_SUPPORT !ifdef USES_PVM !ifndef PVM_ROOT BUILDERROR: PVM_ROOT must be defined in environment to build (and run) Paradyn !endif !ifndef PVM_ARCH BUILDERROR: PVM_ROOT must be defined in environment to build (and run) Paradyn !endif PVM_INCDIR = $(PVM_ROOT)/include PVM_LIBDIR = $(PVM_ROOT)/lib/$(PVM_ARCH) IFLAGS = $(IFLAGS) -I$(PVM_INCDIR) #LIBDIR += $(patsubst %,-L%,$(PVM_LIBDIR)) #VPATH += $(PVM_LIBDIR) !endif !endif !ifdef USES_TCLTK # Comment in the location of the tcl2c that you wish to use TCL2C = $(TO_CORE)/tclStuff/tcl2c #TCL2C = $(BACKUP_CORE)/tclStuff/tcl2c #TCL2C = tcl2c TCL2C_GEN_SRCS = tcl2c.C # Comment in the location of the Tcl/Tk files you wish to use TCLTK_INCLUDES = -I$(TCLTK_DIR)\common\include #TCLTK_INCLUDES = -I$(TO_CORE)/tclStuff/include #TCLTK_INCLUDES = -I$(BACKUP_CORE)/tclStuff/include TCLTK_LIBS = tcl80.lib tk80.lib TCLTK_LIBPATH = -LIBPATH:$(TCLTK_DIR)\lib IFLAGS = $(IFLAGS) $(TCLTK_INCLUDES) LIBDIR = $(LIBDIR) $(TCLTK_LIBPATH) !endif /* USES_TCLTK */ # 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 !else # try the common one !if exist ($(TO_CORE)\make.config.local) !include $(TO_CORE)\make.config.local !endif !endif