# # 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 # # Define the root setup function # BLD_SETUP_FUNC = [.mms]MMS_SETUP.COM # # Define the target architecture # PLATFORM = $(MMSARCH_NAME) .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 .ELSE .IF MMSALPHA CC_OPT = /OPTIMIZE=(LEVEL=4,TUNE=EV56)/ARCH=EV56 CXX_OPT = /OPTIMIZE=(LEVEL=4,TUNE=EV56)/ARCH=EV56 .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 FORT_OPT = /OPTIMIZE=(LEVEL=4,TUNE=HOST) .ENDIF .ENDIF LINKFLAGS = $(LINKFLAGS)/MAP=$(LISDIR)$(NOTDIR $(BASENAME $@).MAP)/FULL/CROSS .IF LIST LISTFLAG = /LIST=$(DIR $(MMS$TARGET))/SHOW=(EXPANSION,INCLUDE,CROSS_REFERENCE)/MACHINE_CODE CXXLISTFLAG = /LIST=$(DIR $(MMS$TARGET))/SHOW=(EXPANSION,INCLUDE)/MACHINE_CODE .ELSE LISTFLAG = CXXLISTFLAG = .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)$(CXXLISTFLAG)$(CXXEXTRAFLAGS)/OBJECT=$(MMS$TARGET) $(MMS$SOURCE) .cpp.obj : $(CXX)$(CXX_OPT)$(CXXFLAGS)$(CXXLISTFLAG)$(CXXEXTRAFLAGS)/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=$(CXXDIR) CXXFLAGS = /NAMES=(AS_IS,SHORT)/FLOAT=IEEE/IEEE=DENORM/REPOSITORY=$(CXXDIR) .IF MMSALPHA CXXLINKFLAGS = $(LINKFLAGS)/REPOSITORY=$(CXXDIR) .ELSE CXXLINKFLAGS = $(LINKFLAGS) CXXLINK = LINK .ENDIF # # Define DCL verbs/commands # ECHO = WRITE SYS$OUTPUT CP = COPY/NOCONFIRM/NOLOG COPY = COPY/NOCONFIRM/NOLOG RM = DELETE/NOCONFIRM/NOLOG DELETE = DELETE/NOCONFIRM/NOLOG DELTREE = DELETE/NOCONFIRM/NOLOG/TREE RUN = RUN/NODEBUG MAKE = $(MMS)$(MMSQUALIFIERS) CLEAN32 = IF F$SEARCH("$(PLATFORM).DIR") .NES. "" THEN PIPE $(DELTREE) [.$(PLATFORM)...]*.*;* ; $(DELETE) $(PLATFORM).DIR;1 CLEAN64 = IF F$SEARCH("$(PLATFORM)_64.DIR") .NES. "" THEN PIPE $(DELTREE) [.$(PLATFORM)_64...]*.*;* ; $(DELETE) $(PLATFORM)_64.DIR;1 # # some sharable libraries # 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 # # openssl libraries # SSL_* are logicals defined in $(BUILD_SETUP_FUNC) # OPENSSL_LIBCRYPTO32 = ''F$TRNLNM("SSL_LIBCRYPTO32")' OPENSSL_LIBCRYPTO64 = ''F$TRNLNM("SSL_LIBCRYPTO64")' OPENSSL_LIBSSL32 = ''F$TRNLNM("SSL_LIBSSL32")' OPENSSL_LIBSSL64 = ''F$TRNLNM("SSL_LIBSSL64")' OPENSSL_SHRCRYPTO32 = ''F$TRNLNM("SSL_SHRCRYPTO32")' OPENSSL_SHRCRYPTO64 = ''F$TRNLNM("SSL_SHRCRYPTO64")' OPENSSL_SHRSSL32 = ''F$TRNLNM("SSL_SHRSSL32")' OPENSSL_SHRSSL64 = ''F$TRNLNM("SSL_SHRSSL64")' #