# # Define various constants used by the WASD build procedure # # This procedure accepts the following macros from the command line # Name Value Action # Debug anything Builds everything /NOOPTIMIZE/DEBUG # List anything Creates a compiler listing file # NoOpt anything Compiles using /NOOPTIMIZE # SSL See mms_setup.com Specifies the SSL version to use # X86 anything Builds for X86_64 using the cross-tools # # Define the root setup function # BLD_SETUP_FUNC = [.mms]MMS_SETUP.COM # # Define the target architecture # .IF .NOT X86 PLATFORM = $(MMSARCH_NAME) DBL_SIZE=128 .ELSE PLATFORM = X86_64 CC = XCC DBL_SIZE=64 .ENDIF .IF "$(PLATFORM)" .EQ "Alpha" PLATFORM = AXP .ENDIF # # Define the target directories # LIBDIR = [.$(PLATFORM).LIB] LISDIR = [.$(PLATFORM).LIS] OBJDIR = [.$(PLATFORM).OBJ] EXEDIR = [.$(PLATFORM).EXE] CXXDIR = [.$(PLATFORM).CXX_REPOSITORY] # WASD_EXE = [-.$(PLATFORM)] CGI_BIN = [-.CGI-BIN] CGI_EXE = [-.$(PLATFORM)-BIN] # # Process the Macros we support # LINKFLAGS = .IF DEBUG CC_OPT = /NOOPTIMIZE/DEBUG CXX_OPT = /NOOPTIMIZE/DEBUG LINKFLAGS = /DEBUG .ELSIF NOOPT CC_OPT = /NOOPTIMIZE CXX_OPT = /NOOPTIMIZE .ELSIF X86 CC_OPT = /OPTIMIZE CXX_OPT = /OPTIMIZE .ELSIF MMSIA64 CC_OPT = /OPTIMIZE=(LEVEL=4,TUNE=ITANIUM2)/ARCH=ITANIUM2 CXX_OPT = /OPTIMIZE=(LEVEL=4,TUNE=ITANIUM2,OVERRIDE_LIMITS)/ARCH=ITANIUM2 .ELSE CC_OPT = /OPTIMIZE=(LEVEL=4,TUNE=HOST)/ARCH=HOST CXX_OPT = /OPTIMIZE=(LEVEL=4,TUNE=HOST)/ARCH=HOST .ENDIF LINKFLAGS = /MAP=$(LISDIR)/FULL/CROSS$(LINKFLAGS) .IF LIST LISTFLAG = /LIST=$(DIR $(MMS$TARGET))/SHOW=(EXPANSION,INCLUDE,CROSS_REFERENCE)/MACHINE_CODE .ELSE LISTFLAG = .ENDIF # # define build actions # List files are placed along side the object files # .suffixes .suffixes .exe .olb .obj .c .cc .cpp .h .c.obj : $(CC)$(CC_OPT)$(CFLAGS)$(LISTFLAG)$(EXTRAFLAGS)/OBJECT=$(MMS$TARGET) $(MMS$SOURCE) .cc.obj : $(CXX)$(CXX_OPT)$(CXXFLAGS)$(LISTFLAG)$(EXTRAFLAGS)/OBJECT=$(MMS$TARGET) $(MMS$SOURCE) .cpp.obj : $(CXX)$(CXX_OPT)$(CXXFLAGS)$(LISTFLAG)$(EXTRAFLAGS)/OBJECT=$(MMS$TARGET) $(MMS$SOURCE) .obj.olb : $(LIBR)$(LIBRFLAGS) $(MMS$TARGET) $(MMS$SOURCE) .obj.exe : $(LINK)/EXE=$(MMS$TARGET)$(LINKFLAGS) $(MMS$SOURCE_LIST)/LIBRARY CFLAGS = /NAMES=(AS_IS,SHORT)/FLOAT=IEEE/IEEE=DENORM/REPOSITORY=[.$(PLATFORM).CXX_REPOSITORY]/L_DOUBLE=$(DBL_SIZE) CXXFLAGS = /NAMES=(AS_IS,SHORT)/FLOAT=IEEE/IEEE=DENORM/NORTTI/REPOSITORY=[.$(PLATFORM).CXX_REPOSITORY]/L_DOUBLE=$(DBL_SIZE) CXXLINKFLAGS = $(LINKFLAGS)/REPOSITORY=[.$(PLATFORM).CXX_REPOSITORY] # # Define DCL verbs/commands # ECHO = WRITE SYS$OUTPUT CP = COPY/NOCONFIRM/NOLOG COPY = COPY/NOCONFIRM/NOLOG RM = DELETE/NOCONFIRM/NOLOG DELETE = DELETE/NOCONFIRM/NOLOG #DELETE_TREE = PIPE DFU DELETE/DIR/TREE/NOLOG > _NLA0: DELETE_TREE = DELETE/NOCONFIRM/NOLOG/TREE RUN = RUN/NODEBUG MAKE = $(MMS)$(MMSQUALIFIERS) # # some sharable libraries # .IF .NOT X86 DECW$XLIBSHR = SYS$LIBRARY:DECW$XLIBSHR.EXE DECW$XTLIBSHR = SYS$LIBRARY:DECW$XTLIBSHRR5.EXE SPISHR = SYS$LIBRARY:SPISHR.EXE SORTSHR = SYS$LIBRARY:SORTSHR.EXE LDAP$LIBLBER_SHR = LDAP$LIBLBER_SHR32 LDAP$LIBLDAP_SHR = LDAP$LIBLDAP_SHR32 LDAP$LIBLDAP32 = LDAP$LIB:LDAP$LIBLDAP32.OLB TCPIP_SHR = TCPIP$IPC_SHR GSS_SHR = SYS$LIBRARY:GSS$RTL32.EXE .ELSE DECW$XLIBSHR = X86$LIBRARY:DECW$XLIBSHR.EXE DECW$XTLIBSHR = X86$LIBRARY:DECW$XTLIBSHRR5.EXE SPISHR = X86$LIBRARY:SPISHR.EXE SORTSHR = X86$LIBRARY:SORTSHR.EXE LDAP$LIBLBER_SHR = X86$LIBRARY:LDAP$LIBLBER_SHR32.EXE LDAP$LIBLDAP_SHR = X86$LIBRARY:LDAP$LIBLDAP_SHR32.EXE LDAP$LIBLDAP32 = X86$LIBRARY:LDAP$LIBLDAP32.OLB TCPIP_SHR = X86$LIBRARY:UCX$IPC_SHR.EXE GSS_SHR = X86$LIBRARY:GSS$RTL32.EXE .ENDIF