diff --git a/descrip.mms b/descrip.mms index 1dd77ed7..4982b9b0 100644 --- a/descrip.mms +++ b/descrip.mms @@ -2,13 +2,13 @@ # Written By: Robert Alan Byer / byer@mail.ourservers.net # Modified By: Mark Pizzolato / mark@infocomm.com # Norman Lastovica / norman.lastovica@oracle.com -# Camiel Vanderhoeven / camiel@camicom.com +# Camiel Vanderhoeven / camiel@camicom.com # # This MMS/MMK build script is used to compile the various simulators in # the SIMH package for OpenVMS using DEC C v6.0-001(AXP), v6.5-001(AXP), -# HP C V7.2-001 (IA64) and v6.4-005(VAX). +# HP C V7.3-009-48GBT (AXP), HP C V7.2-001 (IA64) and v6.4-005(VAX). # -# Notes: On VAX, the PDP-10 and Eclipse simulators will not be built +# Notes: On VAX, the PDP-10and IBM 7094 simulators will not be built # due to the fact that INT64 is required for that simulator. # # This build script will accept the following build options. @@ -23,6 +23,7 @@ # HP2100 Just Build The Hewlett-Packard HP-2100. # I1401 Just Build The IBM 1401. # I1620 Just Build The IBM 1620. +# I7094 Just Build The IBM 7094. # IBM1130 Just Build The IBM 1130. # ID16 Just Build The Interdata 16-bit CPU. # ID32 Just Build The Interdata 32-bit CPU. @@ -37,6 +38,7 @@ # PDP15 Just Build The DEC PDP-15. # S3 Just Build The IBM System 3. # SDS Just Build The SDS 940. +# SWTP Just Build The SWTP. # VAX Just Build The DEC VAX. # VAX780 Just Build The DEC VAX780. # CLEAN Will Clean Files Back To Base Kit. @@ -46,6 +48,11 @@ # # MMK/MACRO=(DEBUG=1) # +# To build on older Alpha VMS platforms, SIM_ASYNCH_IO must be disabled. +# use.. +# +# MMK/MACRO=(NOASYNCH=1) +# # This will produce an executable named {Simulator}-{I64|VAX|AXP}-DBG.EXE # @@ -62,19 +69,23 @@ CC_OPTIMIZE = /NOOPTIMIZE .IFDEF MMSALPHA ALPHA_OR_IA64 = 1 CC_FLAGS = /PREF=ALL -ARCH = AXP-DBG +.IFDEF NOASYNCH +ARCH = AXP-NOASYNCH-DBG CC_DEFS = "_LARGEFILE" +.ELSE +ARCH = AXP-DBG +CC_DEFS = "_LARGEFILE","SIM_ASYNCH_IO=1" +.ENDIF .ENDIF .IFDEF MMSIA64 ALPHA_OR_IA64 = 1 CC_FLAGS = /PREF=ALL ARCH = I64-DBG -CC_DEFS = "_LARGEFILE" +CC_DEFS = "_LARGEFILE","SIM_ASYNCH_IO=1" .ENDIF .IFDEF MMSVAX -ALPHA_OR_IA64 = 0 CC_FLAGS = $(CC_FLAGS) ARCH = VAX-DBG CC_DEFS = "__VAX" @@ -87,8 +98,13 @@ LINK_DEBUG = /NODEBUG/NOTRACEBACK ALPHA_OR_IA64 = 1 CC_OPTIMIZE = /OPT=(LEV=5)/ARCH=HOST CC_FLAGS = /PREF=ALL -ARCH = AXP +.IFDEF NOASYNCH +ARCH = AXP-NOASYNCH CC_DEFS = "_LARGEFILE" +.ELSE +ARCH = AXP +CC_DEFS = "_LARGEFILE","SIM_ASYNCH_IO=1" +.ENDIF LINK_SECTION_BINDING = /SECTION_BINDING .ENDIF @@ -97,11 +113,10 @@ ALPHA_OR_IA64 = 1 CC_OPTIMIZE = /OPT=(LEV=5) CC_FLAGS = /PREF=ALL ARCH = I64 -CC_DEFS = "_LARGEFILE" +CC_DEFS = "_LARGEFILE","SIM_ASYNCH_IO=1" .ENDIF .IFDEF MMSVAX -ALPHA_OR_IA64 = 0 CC_OPTIMIZE = /OPTIMIZE CC_FLAGS = $(CC_FLAGS) ARCH = VAX @@ -120,15 +135,18 @@ CC = CC/DECC$(OUR_CC_FLAGS) # Define The platform specific Build Directory Where The Objects Will Go. # BIN_DIR = SYS$DISK:[.BIN] -LIB_DIR = SYS$DISK:[.LIB] -BLD_DIR = SYS$DISK:[.LIB.BLD-$(ARCH)] +LIB_DIR = SYS$DISK:[.BIN.VMS.LIB] +BLD_DIR = SYS$DISK:[.BIN.VMS.LIB.BLD-$(ARCH)] # Check To Make Sure We Have SYS$DISK:[.BIN] & SYS$DISK:[.LIB] Directory. # .FIRST + @ IF ((F$GETSYI("ARCH_NAME").EQS."Alpha").AND.(F$GETSYI("VERSION").LES."V8.0").AND.("$(NOASYNCH)".EQS."")) THEN WRITE SYS$OUTPUT "*** WARNING **** Build should be invoked with /MACRO=NOASYNCH=1 on this platform" + @ IF ((F$GETSYI("ARCH_NAME").EQS."Alpha").AND.(F$GETSYI("VERSION").LES."V8.0").AND.("$(NOASYNCH)".EQS."")) THEN EXIT %x10000000 @ IF (F$SEARCH("SYS$DISK:[]BIN.DIR").EQS."") THEN CREATE/DIRECTORY $(BIN_DIR) - @ IF (F$SEARCH("SYS$DISK:[]LIB.DIR").EQS."") THEN CREATE/DIRECTORY $(LIB_DIR) - @ IF (F$SEARCH("SYS$DISK:[.LIB]BLD-$(ARCH).DIR").EQS."") THEN CREATE/DIRECTORY $(BLD_DIR) + @ IF (F$SEARCH("SYS$DISK:[.BIN]VMS.DIR").EQS."") THEN CREATE/DIRECTORY $(LIB_DIR) + @ IF (F$SEARCH("SYS$DISK:[.BIN.VMS]LIB.DIR").EQS."") THEN CREATE/DIRECTORY $(LIB_DIR) + @ IF (F$SEARCH("SYS$DISK:[.BIN.VMS.LIB]BLD-$(ARCH).DIR").EQS."") THEN CREATE/DIRECTORY $(BLD_DIR) @ IF (F$SEARCH("$(BLD_DIR)*.*").NES."") THEN DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.*;* @ IF "".NES."''CC'" THEN DELETE/SYMBOL/GLOBAL CC @@ -139,7 +157,11 @@ SIMH_LIB = $(LIB_DIR)SIMH-$(ARCH).OLB SIMH_SOURCE = $(SIMH_DIR)SIM_CONSOLE.C,$(SIMH_DIR)SIM_SOCK.C,\ $(SIMH_DIR)SIM_TMXR.C,$(SIMH_DIR)SIM_ETHER.C,\ $(SIMH_DIR)SIM_TAPE.C,$(SIMH_DIR)SIM_FIO.C,\ - $(SIMH_DIR)SIM_TIMER.C + $(SIMH_DIR)SIM_TIMER.C,$(SIMH_DIR)SIM_DISK.C +SIMH_MAIN = SCP.C +.IFDEF ALPHA_OR_IA64 +SIMH_LIB64 = $(LIB_DIR)SIMH64-$(ARCH).OLB +.ENDIF # VMS PCAP File Definitions. # @@ -227,7 +249,7 @@ ECLIPSE_SOURCE = $(NOVA_DIR)ECLIPSE_CPU.C,$(NOVA_DIR)ECLIPSE_TT.C,\ $(NOVA_DIR)NOVA_PT.C,$(NOVA_DIR)NOVA_CLK.C,\ $(NOVA_DIR)NOVA_TT1.C,$(NOVA_DIR)NOVA_QTY.C ECLIPSE_OPTIONS = /INCL=($(SIMH_DIR),$(NOVA_DIR))\ - /DEF=($(CC_DEFS),"USE_INT64=1","ECLIPSE=1") + /DEF=($(CC_DEFS),"ECLIPSE=1") # # GRI Corporation GRI-909 Simulator Definitions. @@ -275,7 +297,7 @@ HP2100_SOURCE1 = $(HP2100_DIR)HP2100_STDDEV.C,$(HP2100_DIR)HP2100_DP.C,\ HP2100_LIB2 = $(LIB_DIR)HP2100L2-$(ARCH).OLB HP2100_SOURCE2 = $(HP2100_DIR)HP2100_FP1.C,$(HP2100_DIR)HP2100_BACI.C,\ $(HP2100_DIR)HP2100_MPX.C,$(HP2100_DIR)HP2100_PIF.C -.IF ALPHA_OR_IA64 +.IFDEF ALPHA_OR_IA64 HP2100_OPTIONS = /INCL=($(SIMH_DIR),$(HP2100_DIR))\ /DEF=($(CC_DEFS),"HAVE_INT64=1") .ELSE @@ -453,6 +475,15 @@ SDS_SOURCE = $(SDS_DIR)SDS_CPU.C,$(SDS_DIR)SDS_DRM.C,$(SDS_DIR)SDS_DSK.C,\ $(SDS_DIR)SDS_SYS.C SDS_OPTIONS = /INCL=($(SIMH_DIR),$(SDS_DIR))/DEF=($(CC_DEFS)) +# +# SWTP 6800 +# +SWTP_DIR = SYS$DISK:[.SWTP] +SWTP_LIB = $(LIB_DIR)SWTP-$(ARCH).OLB +SWTP_SOURCE = $(SWTP_DIR)SWTP_CPU.C,$(SWTP_DIR)SWTP_DSK.C,$(SWTP_DIR)SWTP_SIO.C,\ + $(SWTP_DIR)SWTP_SYS.C +SWTP_OPTIONS = /INCL=($(SIMH_DIR),$(SWTP_DIR))/DEF=($(CC_DEFS)) + # # Digital Equipment VAX Simulator Definitions. # @@ -470,8 +501,15 @@ VAX_SOURCE = $(VAX_DIR)VAX_CIS.C,$(VAX_DIR)VAX_CMODE.C,\ $(PDP11_DIR)PDP11_LP.C,$(PDP11_DIR)PDP11_TQ.C,\ $(PDP11_DIR)PDP11_XQ.C,$(PDP11_DIR)PDP11_CR.C,\ $(PDP11_DIR)PDP11_RY.C,$(PDP11_DIR)PDP11_VH.C +.IFDEF ALPHA_OR_IA64 +VAX_OPTIONS = /INCL=($(SIMH_DIR),$(VAX_DIR),$(PDP11_DIR)$(PCAP_INC))\ + /DEF=($(CC_DEFS),"VM_VAX=1","USE_ADDR64=1","USE_INT64=1"$(PCAP_DEFS)) +VAX_SIMH_LIB = $(SIMH_LIB64) +.ELSE VAX_OPTIONS = /INCL=($(SIMH_DIR),$(VAX_DIR),$(PDP11_DIR)$(PCAP_INC))\ /DEF=($(CC_DEFS),"VM_VAX=1"$(PCAP_DEFS)) +VAX_SIMH_LIB = $(SIMH_LIB) +.ENDIF # Digital Equipment VAX780 Simulator Definitions. # @@ -493,8 +531,15 @@ VAX780_SOURCE2 = $(PDP11_DIR)PDP11_RL.C,$(PDP11_DIR)PDP11_RQ.C,\ $(PDP11_DIR)PDP11_CR.C,$(PDP11_DIR)PDP11_RP.C,\ $(PDP11_DIR)PDP11_TU.C,$(PDP11_DIR)PDP11_HK.C,\ $(PDP11_DIR)PDP11_IO_LIB.C +.IFDEF ALPHA_OR_IA64 +VAX780_OPTIONS = /INCL=($(SIMH_DIR),$(VAX780_DIR),$(PDP11_DIR)$(PCAP_INC))\ + /DEF=($(CC_DEFS),"VM_VAX=1","USE_ADDR64=1","USE_INT64=1"$(PCAP_DEFS),"VAX_780=1") +VAX780_SIMH_LIB = $(SIMH_LIB64) +.ELSE VAX780_OPTIONS = /INCL=($(SIMH_DIR),$(VAX780_DIR),$(PDP11_DIR)$(PCAP_INC))\ /DEF=($(CC_DEFS),"VM_VAX=1"$(PCAP_DEFS),"VAX_780=1") +VAX780_SIMH_LIB = $(SIMH_LIB) +.ENDIF # IBM 7094 Simulator Definitions. # @@ -510,17 +555,17 @@ I7094_OPTIONS = /INCL=($(SIMH_DIR),$(I7094_DIR))/DEF=($(CC_DEFS)) # If we're not a VAX, Build Everything # -.IF ALPHA_OR_IA64 +.IFDEF ALPHA_OR_IA64 ALL : ALTAIR ALTAIRZ80 ECLIPSE GRI LGP H316 HP2100 I1401 I1620 IBM1130 ID16 \ ID32 NOVA PDP1 PDP4 PDP7 PDP8 PDP9 PDP10 PDP11 PDP15 S3 VAX VAX780 SDS \ - I7094 + I7094 SWTP $! No further actions necessary .ELSE # # Else We Are On VAX And Build Everything EXCEPT the 64b simulators # -ALL : ALTAIR ALTAIRZ80 GRI H316 HP2100 I1401 I1620 IBM1130 ID16 ID32 \ - NOVA PDP1 PDP4 PDP7 PDP8 PDP9 PDP11 PDP15 S3 VAX VAX780 SDS +ALL : ALTAIR ALTAIRZ80 ECLIPSE GRI H316 HP2100 I1401 I1620 IBM1130 ID16 ID32 \ + NOVA PDP1 PDP4 PDP7 PDP8 PDP9 PDP11 PDP15 S3 VAX VAX780 SDS SWTP $! No further actions necessary .ENDIF @@ -553,6 +598,19 @@ $(SIMH_LIB) : $(SIMH_SOURCE) $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* +.IFDEF ALPHA_OR_IA64 +$(SIMH_LIB64) : $(SIMH_SOURCE) + $! + $! Building The $(SIMH_LIB64) Library. + $! + $ $(CC)/DEF=($(CC_DEFS)$(PCAP_DEFS),"USE_ADDR64=1","USE_INT64=1")$(PCAP_SIMH_INC) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* +.ENDIF + $(ALTAIR_LIB) : $(ALTAIR_SOURCE) $! $! Building The $(ALTAIR_LIB) Library. @@ -586,10 +644,6 @@ $(ALTAIRZ80_LIB2) : $(ALTAIRZ80_SOURCE2) $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* -# -# If Not On VAX, Build The Eclipse Library. -# -.IF ALPHA_OR_IA64 $(ECLIPSE_LIB) : $(ECLIPSE_SOURCE) $! $! Building The $(ECLIPSE_LIB) Library. @@ -600,16 +654,6 @@ $(ECLIPSE_LIB) : $(ECLIPSE_SOURCE) LIBRARY/CREATE $(MMS$TARGET) $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* -.ELSE -# -# We Are On VAX And Due To The Use of INT64 We Can't Build It. -# -$(ECLIPSE_LIB) : - $! - $! Due To The Use Of INT64 We Can't Build The - $! $(LIB_DIR)ECLIPSE-$(ARCH).OLB Library On VAX. - $! -.ENDIF $(GRI_LIB) : $(GRI_SOURCE) $! @@ -790,7 +834,7 @@ $(PDP9_LIB) : $(PDP18B_SOURCE) # # If Not On VAX, Build The PDP-10 Library. # -.IF ALPHA_OR_IA64 +.IFDEF ALPHA_OR_IA64 $(PDP10_LIB) : $(PDP10_SOURCE) $! $! Building The $(PDP10_LIB) Library. @@ -807,7 +851,7 @@ $(PDP10_LIB) : $(PDP10_SOURCE) # $(PDP10_LIB) : $! Due To The Use Of INT64 We Can't Build The - $! $(LIB_DIR)PDP10-$(ARCH).OLB Library On VAX. + $! $(MMS$TARGET) Library On VAX. .ENDIF $(PDP11_LIB1) : $(PDP11_SOURCE1) @@ -865,6 +909,17 @@ $(SDS_LIB) : $(SDS_SOURCE) $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* +$(SWTP_LIB) : $(SWTP_SOURCE) + $! + $! Building The $(SWTP_LIB) Library. + $! + $ $(CC)$(SWTP_OPTIONS) - + /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST) + $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN - + LIBRARY/CREATE $(MMS$TARGET) + $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + $(VAX_LIB) : $(VAX_SOURCE) $! $! Building The $(VAX_LIB) Library. @@ -913,7 +968,7 @@ $(PCAP_LIB) : $(PCAP_SOURCE) # # If Not On VAX, Build The IBM 7094 Library. # -.IF ALPHA_OR_IA64 +.IFDEF ALPHA_OR_IA64 $(I7094_LIB) : $(I7094_SOURCE) $! $! Building The $(I7094_LIB) Library. @@ -930,13 +985,16 @@ $(I7094_LIB) : $(I7094_SOURCE) # $(I7094_LIB) : $! Due To The Use Of INT64 We Can't Build The - $! $(LIB_DIR)I7094-$(ARCH).OLB Library On VAX. + $! $(MMS$TARGET) Library On VAX. .ENDIF # # Individual Simulator Builds. # -ALTAIR : $(SIMH_LIB) $(ALTAIR_LIB) +ALTAIR : $(BIN_DIR)ALTAIR-$(ARCH).EXE + $! ALTAIR done + +$(BIN_DIR)ALTAIR-$(ARCH).EXE : $(SIMH_MAIN) $(SIMH_LIB) $(ALTAIR_LIB) $! $! Building The $(BIN_DIR)ALTAIR-$(ARCH).EXE Simulator. $! @@ -945,7 +1003,10 @@ ALTAIR : $(SIMH_LIB) $(ALTAIR_LIB) $(BLD_DIR)SCP.OBJ,$(ALTAIR_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* -ALTAIRZ80 : $(SIMH_LIB) $(ALTAIRZ80_LIB1) $(ALTAIRZ80_LIB2) +ALTAIRZ80 : $(BIN_DIR)ALTAIRZ80-$(ARCH).EXE + $! ALTAIRZ80 done + +$(BIN_DIR)ALTAIRZ80-$(ARCH).EXE : $(SIMH_MAIN) $(SIMH_LIB) $(ALTAIRZ80_LIB1) $(ALTAIRZ80_LIB2) $! $! Building The $(BIN_DIR)ALTAIRZ80-$(ARCH).EXE Simulator. $! @@ -955,11 +1016,10 @@ ALTAIRZ80 : $(SIMH_LIB) $(ALTAIRZ80_LIB1) $(ALTAIRZ80_LIB2) $(ALTAIRZ80_LIB2)/LIBRARY,$(SIMH_LIB)/LIBRARY $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* -# -# If Not On VAX, Build The PDP-10 Simulator. -# -.IF ALPHA_OR_IA64 -ECLIPSE : $(SIMH_LIB) $(ECLIPSE_LIB) +ECLIPSE : $(BIN_DIR)ECLIPSE-$(ARCH).EXE + $! ECLIPSE done + +$(BIN_DIR)ECLIPSE-$(ARCH).EXE : $(SIMH_MAIN) $(SIMH_LIB) $(ECLIPSE_LIB) $! $! Building The $(BIN_DIR)ECLIPSE-$(ARCH).EXE Simulator. $! @@ -967,17 +1027,11 @@ ECLIPSE : $(SIMH_LIB) $(ECLIPSE_LIB) $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)ECLIPSE-$(ARCH).EXE - $(BLD_DIR)SCP.OBJ,$(ECLIPSE_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* -.ELSE -# -# Else We Are On VAX And Tell The User We Can't Build On VAX -# Due To The Use Of INT64. -# -ECLIPSE : - $! Sorry, Can't Build $(BIN_DIR)ECLIPSE-$(ARCH).EXE Simulator - $! Because It Requires The Use Of INT64. -.ENDIF -GRI : $(SIMH_LIB) $(GRI_LIB) +GRI : $(BIN_DIR)GRI-$(ARCH).EXE + $! GRI done + +$(BIN_DIR)GRI-$(ARCH).EXE : $(SIMH_MAIN) $(SIMH_LIB) $(GRI_LIB) $! $! Building The $(BIN_DIR)GRI-$(ARCH).EXE Simulator. $! @@ -986,7 +1040,10 @@ GRI : $(SIMH_LIB) $(GRI_LIB) $(BLD_DIR)SCP.OBJ,$(GRI_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* -LGP : $(SIMH_LIB) $(LGP_LIB) +LGP : $(BIN_DIR)LGP-$(ARCH).EXE + $! LGP done + +$(BIN_DIR)LGP-$(ARCH).EXE : $(SIMH_MAIN) $(SIMH_LIB) $(LGP_LIB) $! $! Building The $(BIN_DIR)LGP-$(ARCH).EXE Simulator. $! @@ -995,7 +1052,10 @@ LGP : $(SIMH_LIB) $(LGP_LIB) $(BLD_DIR)SCP.OBJ,$(LGP_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* -H316 : $(SIMH_LIB) $(H316_LIB) +H316 : $(BIN_DIR)H316-$(ARCH).EXE + $! H316 done + +$(BIN_DIR)H316-$(ARCH).EXE : $(SIMH_MAIN) $(SIMH_LIB) $(H316_LIB) $! $! Building The $(BIN_DIR)H316-$(ARCH).EXE Simulator. $! @@ -1004,7 +1064,10 @@ H316 : $(SIMH_LIB) $(H316_LIB) $(BLD_DIR)SCP.OBJ,$(H316_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* -HP2100 : $(SIMH_LIB) $(HP2100_LIB1) $(HP2100_LIB2) +HP2100 : $(BIN_DIR)HP2100-$(ARCH).EXE + $! HP2100 done + +$(BIN_DIR)HP2100-$(ARCH).EXE : $(SIMH_MAIN) $(SIMH_LIB) $(HP2100_LIB1) $(HP2100_LIB2) $! $! Building The $(BIN_DIR)HP2100-$(ARCH).EXE Simulator. $! @@ -1014,7 +1077,10 @@ HP2100 : $(SIMH_LIB) $(HP2100_LIB1) $(HP2100_LIB2) $(HP2100_LIB2)/LIBRARY,$(SIMH_LIB)/LIBRARY $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* -I1401 : $(SIMH_LIB) $(I1401_LIB) +I1401 : $(BIN_DIR)I1401-$(ARCH).EXE + $! I1401 done + +$(BIN_DIR)I1401-$(ARCH).EXE : $(SIMH_MAIN) $(SIMH_LIB) $(I1401_LIB) $! $! Building The $(BIN_DIR)I1401-$(ARCH).EXE Simulator. $! @@ -1023,7 +1089,10 @@ I1401 : $(SIMH_LIB) $(I1401_LIB) $(BLD_DIR)SCP.OBJ,$(I1401_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* -I1620 : $(SIMH_LIB) $(I1620_LIB) +I1620 : $(BIN_DIR)I1620-$(ARCH).EXE + $! I1620 done + +$(BIN_DIR)I1620-$(ARCH).EXE : $(SIMH_MAIN) $(SIMH_LIB) $(I1620_LIB) $! $! Building The $(BIN_DIR)I1620-$(ARCH).EXE Simulator. $! @@ -1032,7 +1101,10 @@ I1620 : $(SIMH_LIB) $(I1620_LIB) $(BLD_DIR)SCP.OBJ,$(I1620_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* -IBM1130 : $(SIMH_LIB) $(IBM1130_LIB) +IBM1130 : $(BIN_DIR)IBM1130-$(ARCH).EXE + $! IBM1130 done + +$(BIN_DIR)IBM1130-$(ARCH).EXE : $(SIMH_MAIN) $(SIMH_LIB) $(IBM1130_LIB) $! $! Building The $(BIN_DIR)IBM1130-$(ARCH).EXE Simulator. $! @@ -1041,7 +1113,10 @@ IBM1130 : $(SIMH_LIB) $(IBM1130_LIB) $(BLD_DIR)SCP.OBJ,$(IBM1130_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* -ID16 : $(SIMH_LIB) $(ID16_LIB) +ID16 : $(BIN_DIR)ID16-$(ARCH).EXE + $! ID16 done + +$(BIN_DIR)ID16-$(ARCH).EXE : $(SIMH_MAIN) $(SIMH_LIB) $(ID16_LIB) $! $! Building The $(BIN_DIR)ID16-$(ARCH).EXE Simulator. $! @@ -1050,7 +1125,10 @@ ID16 : $(SIMH_LIB) $(ID16_LIB) $(BLD_DIR)SCP.OBJ,$(ID16_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* -ID32 : $(SIMH_LIB) $(ID32_LIB) +ID32 : $(BIN_DIR)ID32-$(ARCH).EXE + $! ID32 done + +$(BIN_DIR)ID32-$(ARCH).EXE : $(SIMH_MAIN) $(SIMH_LIB) $(ID32_LIB) $! $! Building The $(BIN_DIR)ID32-$(ARCH).EXE Simulator. $! @@ -1059,7 +1137,10 @@ ID32 : $(SIMH_LIB) $(ID32_LIB) $(BLD_DIR)SCP.OBJ,$(ID32_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* -NOVA : $(SIMH_LIB) $(NOVA_LIB) +NOVA : $(BIN_DIR)NOVA-$(ARCH).EXE + $! NOVA done + +$(BIN_DIR)NOVA-$(ARCH).EXE : $(SIMH_MAIN) $(SIMH_LIB) $(NOVA_LIB) $! $! Building The $(BIN_DIR)NOVA-$(ARCH).EXE Simulator. $! @@ -1068,7 +1149,10 @@ NOVA : $(SIMH_LIB) $(NOVA_LIB) $(BLD_DIR)SCP.OBJ,$(NOVA_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* -PDP1 : $(SIMH_LIB) $(PDP1_LIB) +PDP1 : $(BIN_DIR)PDP1-$(ARCH).EXE + $! PDP1 done + +$(BIN_DIR)PDP1-$(ARCH).EXE : $(SIMH_MAIN) $(SIMH_LIB) $(PDP1_LIB) $! $! Building The $(BIN_DIR)PDP1-$(ARCH).EXE Simulator. $! @@ -1077,7 +1161,10 @@ PDP1 : $(SIMH_LIB) $(PDP1_LIB) $(BLD_DIR)SCP.OBJ,$(PDP1_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* -PDP4 : $(SIMH_LIB) $(PDP4_LIB) +PDP4 : $(BIN_DIR)PDP4-$(ARCH).EXE + $! PDP4 done + +$(BIN_DIR)PDP4-$(ARCH).EXE : $(SIMH_MAIN) $(SIMH_LIB) $(PDP4_LIB) $! $! Building The $(BIN_DIR)PDP4-$(ARCH).EXE Simulator. $! @@ -1086,7 +1173,10 @@ PDP4 : $(SIMH_LIB) $(PDP4_LIB) $(BLD_DIR)SCP.OBJ,$(PDP4_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* -PDP7 : $(SIMH_LIB) $(PDP7_LIB) +PDP7 : $(BIN_DIR)PDP7-$(ARCH).EXE + $! PDP7 done + +$(BIN_DIR)PDP7-$(ARCH).EXE : $(SIMH_MAIN) $(SIMH_LIB) $(PDP7_LIB) $! $! Building The $(BIN_DIR)PDP7-$(ARCH).EXE Simulator. $! @@ -1095,7 +1185,10 @@ PDP7 : $(SIMH_LIB) $(PDP7_LIB) $(BLD_DIR)SCP.OBJ,$(PDP7_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* -PDP8 : $(SIMH_LIB) $(PDP8_LIB) +PDP8 : $(BIN_DIR)PDP8-$(ARCH).EXE + $! PDP8 done + +$(BIN_DIR)PDP8-$(ARCH).EXE : $(SIMH_MAIN) $(SIMH_LIB) $(PDP8_LIB) $! $! Building The $(BIN_DIR)PDP8-$(ARCH).EXE Simulator. $! @@ -1104,7 +1197,10 @@ PDP8 : $(SIMH_LIB) $(PDP8_LIB) $(BLD_DIR)SCP.OBJ,$(PDP8_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* -PDP9 : $(SIMH_LIB) $(PDP9_LIB) +PDP9 : $(BIN_DIR)PDP9-$(ARCH).EXE + $! PDP9 done + +$(BIN_DIR)PDP9-$(ARCH).EXE : $(SIMH_MAIN) $(SIMH_LIB) $(PDP9_LIB) $! $! Building The $(BIN_DIR)PDP9-$(ARCH).EXE Simulator. $! @@ -1116,8 +1212,11 @@ PDP9 : $(SIMH_LIB) $(PDP9_LIB) # # If Not On VAX, Build The PDP-10 Simulator. # -.IF ALPHA_OR_IA64 -PDP10 : $(SIMH_LIB) $(PCAP_LIBD) $(PDP10_LIB) $(PCAP_EXECLET) +.IFDEF ALPHA_OR_IA64 +PDP10 : $(BIN_DIR)PDP10-$(ARCH).EXE + $! PDP10 done + +$(BIN_DIR)PDP10-$(ARCH).EXE : $(SIMH_MAIN) $(SIMH_LIB) $(PCAP_LIBD) $(PDP10_LIB) $(PCAP_EXECLET) $! $! Building The $(BIN_DIR)PDP10-$(ARCH).EXE Simulator. $! @@ -1135,7 +1234,10 @@ PDP10 : $! Because It Requires The Use Of INT64. .ENDIF -PDP11 : $(SIMH_LIB) $(PCAP_LIBD) $(PDP11_LIB1) $(PDP11_LIB2) $(PCAP_EXECLET) +PDP11 : $(BIN_DIR)PDP11-$(ARCH).EXE + $! PDP11 done + +$(BIN_DIR)PDP11-$(ARCH).EXE : $(SIMH_MAIN) $(SIMH_LIB) $(PCAP_LIBD) $(PDP11_LIB1) $(PDP11_LIB2) $(PCAP_EXECLET) $! $! Building The $(BIN_DIR)PDP11-$(ARCH).EXE Simulator. $! @@ -1144,7 +1246,10 @@ PDP11 : $(SIMH_LIB) $(PCAP_LIBD) $(PDP11_LIB1) $(PDP11_LIB2) $(PCAP_EXECLET) $(BLD_DIR)SCP.OBJ,$(PDP11_LIB1)/LIBRARY,$(PDP11_LIB2)/LIBRARY,$(SIMH_LIB)/LIBRARY$(PCAP_LIBR) $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* -PDP15 : $(SIMH_LIB) $(PDP15_LIB) +PDP15 : $(BIN_DIR)PDP15-$(ARCH).EXE + $! PDP15 done + +$(BIN_DIR)PDP15-$(ARCH).EXE : $(SIMH_MAIN) $(SIMH_LIB) $(PDP15_LIB) $! $! Building The $(BIN_DIR)PDP15-$(ARCH).EXE Simulator. $! @@ -1153,7 +1258,10 @@ PDP15 : $(SIMH_LIB) $(PDP15_LIB) $(BLD_DIR)SCP.OBJ,$(PDP15_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* -S3 : $(SIMH_LIB) $(S3_LIB) +S3 : $(BIN_DIR)S3-$(ARCH).EXE + $! S3 done + +$(BIN_DIR)S3-$(ARCH).EXE : $(SIMH_MAIN) $(SIMH_LIB) $(S3_LIB) $! $! Building The $(BIN_DIR)S3-$(ARCH).EXE Simulator. $! @@ -1162,7 +1270,10 @@ S3 : $(SIMH_LIB) $(S3_LIB) $(BLD_DIR)SCP.OBJ,$(S3_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* -SDS : $(SIMH_LIB) $(SDS_LIB) +SDS : $(BIN_DIR)SDS-$(ARCH).EXE + $! SDS done + +$(BIN_DIR)SDS-$(ARCH).EXE : $(SIMH_MAIN) $(SIMH_LIB) $(SDS_LIB) $! $! Building The $(BIN_DIR)SDS-$(ARCH).EXE Simulator. $! @@ -1171,7 +1282,22 @@ SDS : $(SIMH_LIB) $(SDS_LIB) $(BLD_DIR)SCP.OBJ,$(SDS_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* -VAX : $(SIMH_LIB) $(PCAP_LIBD) $(VAX_LIB) $(PCAP_EXECLET) +SWTP : $(BIN_DIR)SWTP-$(ARCH).EXE + $! SWTP done + +$(BIN_DIR)SWTP-$(ARCH).EXE : $(SIMH_MAIN) $(SIMH_LIB) $(SWTP_LIB) + $! + $! Building The $(BIN_DIR)SWTP-$(ARCH).EXE Simulator. + $! + $ $(CC)$(SWTP_OPTIONS)/OBJ=$(BLD_DIR) SCP.C + $ LINK $(LINK_DEBUG)/EXE=$(BIN_DIR)SWTP-$(ARCH).EXE - + $(BLD_DIR)SCP.OBJ,$(SWTP_LIB)/LIBRARY,$(SIMH_LIB)/LIBRARY + $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* + +VAX : $(BIN_DIR)VAX-$(ARCH).EXE + $! VAX done + +$(BIN_DIR)VAX-$(ARCH).EXE : $(SIMH_MAIN) $(VAX_SIMH_LIB) $(PCAP_LIBD) $(VAX_LIB) $(PCAP_EXECLET) $! $! Building The $(BIN_DIR)VAX-$(ARCH).EXE Simulator. $! @@ -1179,10 +1305,13 @@ VAX : $(SIMH_LIB) $(PCAP_LIBD) $(VAX_LIB) $(PCAP_EXECLET) $ LINK $(LINK_DEBUG)$(LINK_SECTION_BINDING)- /EXE=$(BIN_DIR)VAX-$(ARCH).EXE - $(BLD_DIR)SCP.OBJ,$(VAX_LIB)/LIBRARY,- - $(SIMH_LIB)/LIBRARY$(PCAP_LIBR) + $(VAX_SIMH_LIB)/LIBRARY$(PCAP_LIBR) $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* -VAX780 : $(SIMH_LIB) $(PCAP_LIBD) $(VAX780_LIB1) $(VAX780_LIB2) $(PCAP_EXECLET) +VAX780 : $(BIN_DIR)VAX780-$(ARCH).EXE + $! VAX780 done + +$(BIN_DIR)VAX780-$(ARCH).EXE : $(SIMH_MAIN) $(VAX780_SIMH_LIB) $(PCAP_LIBD) $(VAX780_LIB1) $(VAX780_LIB2) $(PCAP_EXECLET) $! $! Building The $(BIN_DIR)VAX780-$(ARCH).EXE Simulator. $! @@ -1191,14 +1320,17 @@ VAX780 : $(SIMH_LIB) $(PCAP_LIBD) $(VAX780_LIB1) $(VAX780_LIB2) $(PCAP_EXECLET) /EXE=$(BIN_DIR)VAX780-$(ARCH).EXE - $(BLD_DIR)SCP.OBJ,- $(VAX780_LIB1)/LIBRARY,$(VAX780_LIB2)/LIBRARY,- - $(SIMH_LIB)/LIBRARY$(PCAP_LIBR) + $(VAX780_SIMH_LIB)/LIBRARY$(PCAP_LIBR) $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;* # # If Not On VAX, Build The IBM 7094 Simulator. # -.IF ALPHA_OR_IA64 -I7094 : $(SIMH_LIB) $(I7094_LIB) +.IFDEF ALPHA_OR_IA64 +I7094 : $(BIN_DIR)I7094-$(ARCH).EXE + $! I7094 done + +$(BIN_DIR)I7094-$(ARCH).EXE : $(SIMH_MAIN) $(SIMH_LIB) $(I7094_LIB) $! $! Building The $(BIN_DIR)I7094-$(ARCH).EXE Simulator. $! diff --git a/makefile b/makefile index 57cde601..296f4a38 100644 --- a/makefile +++ b/makefile @@ -1,39 +1,117 @@ # -# CC Command +# This GMU make makefile has been tested on: +# Linux (x86 & Sparc) +# OS X +# Solaris (x86 & Sparc) +# OpenBSD +# NetBSD +# FreeBSD +# Windows (MinGW & cygwin) +# +# +# CC Command (and platform available options). (Poor man's autoconf) # ifeq ($(WIN32),) - #Unix Environments - ifneq (,$(findstring solaris,$(OSTYPE))) - OS_CCDEFS = -lm -lsocket -lnsl -lrt -lpthread -D_GNU_SOURCE + #*nix Environments (&& cygwin) + ifeq (SunOS,$(shell uname)) + TEST = /bin/test else - ifneq (,$(findstring darwin,$(OSTYPE))) - OS_CCDEFS = -D_GNU_SOURCE + TEST = test + endif + ifeq (Darwin,$(shell uname)) + LIBEXT = dylib + else + LIBEXT = a + endif + OS_CCDEFS = -D_GNU_SOURCE + ifeq (libm,$(shell if $(TEST) -e /usr/lib/libm.$(LIBEXT); then echo libm; fi)) + OS_LDFLAGS += -lm + endif + ifeq (SunOS,$(shell uname)) + OS_CCDEFS += -I/opt/sfw/include + OS_LDFLAGS += -lsocket -lnsl -lrt -lm -lpthread -L/opt/sfw/lib -R/opt/sfw/lib + endif + ifeq (cygwin,$(findstring cygwin,$(OSTYPE))) + OS_CCDEFS += -O2 + endif + ifeq (librt,$(shell if $(TEST) -e /usr/lib/librt.$(LIBEXT); then echo librt; fi)) + OS_LDFLAGS += -lrt + endif + ifeq (libpthread,$(shell if $(TEST) -e /usr/lib/libpthread.$(LIBEXT); then echo libpthread; fi)) + OS_CCDEFS += -DSIM_ASYNCH_IO -DUSE_READER_THREAD + OS_LDFLAGS += -lpthread + endif + ifeq (readline,$(shell if $(TEST) -e /usr/lib/libreadline.$(LIBEXT) -o -e /opt/sfw/lib/libreadline.a; then echo readline; fi)) + # Use Locally installed and available readline support + ifeq (ncurses,$(shell if $(TEST) -e /usr/lib/libncurses.$(LIBEXT) -o -e /opt/sfw/lib/libncurses.a; then echo ncurses; fi)) + OS_CCDEFS += -DHAVE_READLINE + OS_LDFLAGS += -lreadline -lncurses else - OS_CCDEFS = -lrt -lm -D_GNU_SOURCE + OS_CCDEFS += -DHAVE_READLINE + OS_LDFLAGS += -lreadline endif endif - CC = gcc -std=c99 -U__STRICT_ANSI__ -g $(OS_CCDEFS) -I . - ifeq ($(USE_NETWORK),) - else + ifeq (pcap,$(shell if $(TEST) -e /usr/include/pcap.h -o -e /opt/sfw/include/pcap.h; then echo pcap; fi)) + # Use Locally installed and available pcap support + NETWORK_CCDEFS = -DUSE_NETWORK + NETWORK_LDFLAGS = -lpcap + endif + ifeq (tuntap,$(shell if $(TEST) -e /usr/include/linux/if_tun.h; then echo tuntap; fi)) + # Provide support for Tap networking on Linux + NETWORK_TAP_CCDEFS = -DUSE_TAP_NETWORK + endif + ifeq (bsdtuntap,$(shell if $(TEST) -e /usr/include/net/if_tun.h; then echo bsdtuntap; fi)) + # Provide support for Tap networking + NETWORK_TAP_CCDEFS = -DUSE_TAP_NETWORK -DUSE_BSDTUNTAP + endif + ifneq (binexists,$(shell if $(TEST) -e BIN; then echo binexists; fi)) + MKDIRBIN = if $(TEST) ! -e BIN; then mkdir BIN; fi + endif + ifneq ($(USE_NETWORK),) + # Assume built from tcpdump.org sources with default install target NETWORK_OPT = -DUSE_NETWORK -isystem /usr/local/include /usr/local/lib/libpcap.a endif else - #Win32 Environments - LDFLAGS = -lm -lwsock32 -lwinmm - CC = gcc -std=c99 -U__STRICT_ANSI__ -O2 -I. - EXE = .exe - ifeq ($(USE_NETWORK),) + #Win32 Environments (via MinGW32) + GCC_Path := $(dir $(shell where gcc.exe)) + ifeq (pthreads,$(shell if exist ..\pthreads\Pre-built.2\include\pthread.h echo pthreads)) + PTHREADS_CCDEFS = -DSIM_ASYNCH_IO -DUSE_READER_THREAD -I../pthreads/Pre-built.2/include + PTHREADS_LDFLAGS = -lpthreadVC2 -L..\pthreads\Pre-built.2\lib else - NETWORK_OPT = -DUSE_NETWORK -lwpcap -lpacket + ifeq (pthreads,$(shell if exist $(dir $(GCC_Path))..\include\pthread.h echo pthreads)) + PTHREADS_CCDEFS = -DSIM_ASYNCH_IO -DUSE_READER_THREAD + PTHREADS_LDFLAGS = -lpthreads + endif + endif + ifeq (pcap,$(shell if exist ..\winpcap\Wpdpack\include\pcap.h echo pcap)) + PCAP_CCDEFS = -I../winpcap/Wpdpack/include -DUSE_SHARED + NETWORK_LDFLAGS = + else + ifeq (pcap,$(shell if exist $(dir $(GCC_Path))..\include\pcap.h echo pcap)) + PCAP_CCDEFS = -DUSE_SHARED + NETWORK_LDFLAGS = + endif + endif + OS_CCDEFS = -fms-extensions -O2 $(PTHREADS_CCDEFS) $(PCAP_CCDEFS) + OS_LDFLAGS = -lm -lwsock32 -lwinmm $(PTHREADS_LDFLAGS) + EXE = .exe + ifneq (binexists,$(shell if exist BIN echo binexists)) + MKDIRBIN = if not exist BIN mkdir BIN + endif + ifneq ($(USE_NETWORK),) + NETWORK_OPT = -DUSE_SHARED endif endif +CC = gcc -std=c99 -U__STRICT_ANSI__ -g -I . $(NETWORK_CCDEFS) $(NETWORK_TAP_CCDEFS) $(OS_CCDEFS) +LDFLAGS = $(OS_LDFLAGS) $(NETWORK_LDFLAGS) + # # Common Libraries # BIN = BIN/ SIM = scp.c sim_console.c sim_fio.c sim_timer.c sim_sock.c \ - sim_tmxr.c sim_ether.c sim_tape.c + sim_tmxr.c sim_ether.c sim_tape.c sim_disk.c # @@ -58,7 +136,7 @@ ECLIPSE = ${NOVAD}/eclipse_cpu.c ${NOVAD}/eclipse_tt.c ${NOVAD}/nova_sys.c \ ${NOVAD}/nova_dkp.c ${NOVAD}/nova_dsk.c ${NOVAD}/nova_lp.c \ ${NOVAD}/nova_mta.c ${NOVAD}/nova_plt.c ${NOVAD}/nova_pt.c \ ${NOVAD}/nova_clk.c ${NOVAD}/nova_tt1.c ${NOVAD}/nova_qty.c -ECLIPSE_OPT = -I ${NOVAD} -DECLIPSE -DUSE_INT64 +ECLIPSE_OPT = -I ${NOVAD} -DECLIPSE PDP18BD = PDP18B @@ -135,7 +213,7 @@ PDP8 = ${PDP8D}/pdp8_cpu.c ${PDP8D}/pdp8_clk.c ${PDP8D}/pdp8_df.c \ PDP8_OPT = -I ${PDP8D} -H316D = H316 +H316D = h316 H316 = ${H316D}/h316_stddev.c ${H316D}/h316_lp.c ${H316D}/h316_cpu.c \ ${H316D}/h316_sys.c ${H316D}/h316_mt.c ${H316D}/h316_fhd.c \ ${H316D}/h316_dp.c @@ -251,7 +329,7 @@ SDS = ${SDSD}/sds_cpu.c ${SDSD}/sds_drm.c ${SDSD}/sds_dsk.c ${SDSD}/sds_io.c \ ${SDSD}/sds_stddev.c ${SDSD}/sds_sys.c SDS_OPT = -I ${SDSD} -SWTPD = SWTP +SWTPD = swtp SWTP = ${SWTPD}/swtp_cpu.c ${SWTPD}/swtp_dsk.c ${SWTPD}/swtp_sio.c \ ${SWTPD}/swtp_sys.c SWTP_OPT = -I ${SWTPD} @@ -269,9 +347,10 @@ all : ${ALL} clean : ifeq ($(WIN32),) - ${RM} ${BIN}* + ${RM} -r ${BIN} else if exist BIN\*.exe del /q BIN\*.exe + if exist BIN rmdir BIN endif # @@ -280,134 +359,161 @@ endif pdp1 : ${BIN}pdp1${EXE} ${BIN}pdp1${EXE} : ${PDP1} ${SIM} + ${MKDIRBIN} ${CC} ${PDP1} ${SIM} ${PDP1_OPT} -o $@ ${LDFLAGS} pdp4 : ${BIN}pdp4${EXE} ${BIN}pdp4${EXE} : ${PDP18B} ${SIM} + ${MKDIRBIN} ${CC} ${PDP18B} ${SIM} ${PDP4_OPT} -o $@ ${LDFLAGS} pdp7 : ${BIN}pdp7${EXE} ${BIN}pdp7${EXE} : ${PDP18B} ${SIM} + ${MKDIRBIN} ${CC} ${PDP18B} ${SIM} ${PDP7_OPT} -o $@ ${LDFLAGS} pdp8 : ${BIN}pdp8${EXE} ${BIN}pdp8${EXE} : ${PDP8} ${SIM} + ${MKDIRBIN} ${CC} ${PDP8} ${SIM} ${PDP8_OPT} -o $@ ${LDFLAGS} pdp9 : ${BIN}pdp9${EXE} ${BIN}pdp9${EXE} : ${PDP18B} ${SIM} + ${MKDIRBIN} ${CC} ${PDP18B} ${SIM} ${PDP9_OPT} -o $@ ${LDFLAGS} pdp15 : ${BIN}pdp15${EXE} ${BIN}pdp15${EXE} : ${PDP18B} ${SIM} + ${MKDIRBIN} ${CC} ${PDP18B} ${SIM} ${PDP15_OPT} -o $@ ${LDFLAGS} pdp10 : ${BIN}pdp10${EXE} ${BIN}pdp10${EXE} : ${PDP10} ${SIM} + ${MKDIRBIN} ${CC} ${PDP10} ${SIM} ${PDP10_OPT} -o $@ ${LDFLAGS} pdp11 : ${BIN}pdp11${EXE} ${BIN}pdp11${EXE} : ${PDP11} ${SIM} + ${MKDIRBIN} ${CC} ${PDP11} ${SIM} ${PDP11_OPT} -o $@ ${LDFLAGS} vax : ${BIN}vax${EXE} ${BIN}vax${EXE} : ${VAX} ${SIM} + ${MKDIRBIN} ${CC} ${VAX} ${SIM} ${VAX_OPT} -o $@ ${LDFLAGS} vax780 : ${BIN}vax780${EXE} ${BIN}vax780${EXE} : ${VAX780} ${SIM} + ${MKDIRBIN} ${CC} ${VAX780} ${SIM} ${VAX780_OPT} -o $@ ${LDFLAGS} nova : ${BIN}nova${EXE} ${BIN}nova${EXE} : ${NOVA} ${SIM} + ${MKDIRBIN} ${CC} ${NOVA} ${SIM} ${NOVA_OPT} -o $@ ${LDFLAGS} eclipse : ${BIN}eclipse${EXE} ${BIN}eclipse${EXE} : ${ECLIPSE} ${SIM} + ${MKDIRBIN} ${CC} ${ECLIPSE} ${SIM} ${ECLIPSE_OPT} -o $@ ${LDFLAGS} h316 : ${BIN}h316${EXE} ${BIN}h316${EXE} : ${H316} ${SIM} + ${MKDIRBIN} ${CC} ${H316} ${SIM} ${H316_OPT} -o $@ ${LDFLAGS} hp2100 : ${BIN}hp2100${EXE} ${BIN}hp2100${EXE} : ${HP2100} ${SIM} + ${MKDIRBIN} ${CC} ${HP2100} ${SIM} ${HP2100_OPT} -o $@ ${LDFLAGS} i1401 : ${BIN}i1401${EXE} ${BIN}i1401${EXE} : ${I1401} ${SIM} + ${MKDIRBIN} ${CC} ${I1401} ${SIM} ${I1401_OPT} -o $@ ${LDFLAGS} i1620 : ${BIN}i1620${EXE} ${BIN}i1620${EXE} : ${I1620} ${SIM} + ${MKDIRBIN} ${CC} ${I1620} ${SIM} ${I1620_OPT} -o $@ ${LDFLAGS} i7094 : ${BIN}i7094${EXE} ${BIN}i7094${EXE} : ${I7094} ${SIM} + ${MKDIRBIN} ${CC} ${I7094} ${SIM} ${I7094_OPT} -o $@ ${LDFLAGS} ibm1130 : ${BIN}ibm1130${EXE} ${BIN}ibm1130${EXE} : ${IBM1130} + ${MKDIRBIN} ${CC} ${IBM1130} ${SIM} ${IBM1130_OPT} -o $@ ${LDFLAGS} s3 : ${BIN}s3${EXE} ${BIN}s3${EXE} : ${S3} ${SIM} + ${MKDIRBIN} ${CC} ${S3} ${SIM} ${S3_OPT} -o $@ ${LDFLAGS} altair : ${BIN}altair${EXE} ${BIN}altair${EXE} : ${ALTAIR} ${SIM} + ${MKDIRBIN} ${CC} ${ALTAIR} ${SIM} ${ALTAIR_OPT} -o $@ ${LDFLAGS} altairz80 : ${BIN}altairz80${EXE} ${BIN}altairz80${EXE} : ${ALTAIRZ80} ${SIM} + ${MKDIRBIN} ${CC} ${ALTAIRZ80} ${SIM} ${ALTAIRZ80_OPT} -o $@ ${LDFLAGS} gri : ${BIN}gri${EXE} ${BIN}gri${EXE} : ${GRI} ${SIM} + ${MKDIRBIN} ${CC} ${GRI} ${SIM} ${GRI_OPT} -o $@ ${LDFLAGS} lgp : ${BIN}lgp${EXE} ${BIN}lgp${EXE} : ${LGP} ${SIM} + ${MKDIRBIN} ${CC} ${LGP} ${SIM} ${LGP_OPT} -o $@ ${LDFLAGS} id16 : ${BIN}id16${EXE} ${BIN}id16${EXE} : ${ID16} ${SIM} + ${MKDIRBIN} ${CC} ${ID16} ${SIM} ${ID16_OPT} -o $@ ${LDFLAGS} id32 : ${BIN}id32${EXE} ${BIN}id32${EXE} : ${ID32} ${SIM} + ${MKDIRBIN} ${CC} ${ID32} ${SIM} ${ID32_OPT} -o $@ ${LDFLAGS} sds : ${BIN}sds${EXE} ${BIN}sds${EXE} : ${SDS} ${SIM} + ${MKDIRBIN} ${CC} ${SDS} ${SIM} ${SDS_OPT} -o $@ ${LDFLAGS} swtp : ${BIN}swtp${EXE} ${BIN}swtp${EXE} : ${SWTP} ${SIM} - ${CC} ${SWTP} ${SIM} ${SWTP_OPT} -o $@ ${LDFLAGS} \ No newline at end of file + ${MKDIRBIN} + ${CC} ${SWTP} ${SIM} ${SWTP_OPT} -o $@ ${LDFLAGS}