summaryrefslogtreecommitdiff
path: root/vms/include.mms
blob: a5908941dc707608890f9035f40ac6bb12e20ce1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125

.SUFFIXES ;

.SUFFIXES .EXE $(OLB) .OBJ .MMSD .cpp .cc .C .FOR .Y .L

.L.C
	flex -l $(MMS$SOURCE) -o $(MMS$TARGET)

.Y.C
	yacc $(MMS$SOURCE) -o $(MMS$TARGET)

.C.OBJ
	CC$(CFLAGS)/MMS=(FILE=$(MMS$TARGET_NAME).MMSD)/OBJ=$(MMS$TARGET_NAME).OBJ $(MMS$SOURCE)

.C.MMSD
	CC$(CFLAGS)/MMS=(FILE=$(MMS$TARGET_NAME).MMSD)/OBJ=$(MMS$TARGET_NAME).OBJ $(MMS$SOURCE)

.CPP.OBJ
	CXX$(CXXFLAGS)/MMS=(FILE=$(MMS$TARGET_NAME).MMSD)/OBJ=$(MMS$TARGET) $(MMS$SOURCE)

.CPP.MMSD
	CXX$(CXXFLAGS)/MMS=(FILE=$(MMS$TARGET))/OBJ=$(MMS$TARGET_NAME).OBJ $(MMS$SOURCE)

.CC.OBJ
	CXX$(CXXFLAGS)/MMS=(FILE=$(MMS$TARGET_NAME).MMSD)/OBJ=$(MMS$TARGET) $(MMS$SOURCE)

.CC.MMSD
	CXX$(CXXFLAGS)/MMS=(FILE=$(MMS$TARGET))/OBJ=$(MMS$TARGET_NAME).OBJ $(MMS$SOURCE)

.OBJ$(OLB)
	@ IF F$SEARCH("$(MMS$TARGET)") .EQS. "" THEN LIBRARY/CREATE $(MMS$TARGET)
	LIBRARY/REPLACE $(MMS$TARGET) $(MMS$SOURCE_LIST)

.FOR.OBJ
	FOR$(FORFLAGS)/OBJ=$(MMS$TARGET) $(MMS$SOURCE)

.FIRST 
	@ continue

.IFDEF USE_DEPEND
.ELSE
	@ WRITE SYS$OUTPUT "Entering ''F$ENVIRONMENT(""DEFAULT"")'"
.ENDIF

.IFDEF USE_DEPEND
.ELSE
.LAST
	@ WRITE SYS$OUTPUT "Leaving ''F$ENVIRONMENT(""DEFAULT"")'"
.ENDIF

ECHO = WRITE SYS$OUTPUT

DEPS = $(OBJS:.OBJ=.MMSD)

OPTFLAGS = /PREFIX=ALL/FLOAT=IEEE/IEEE=DENORM/NAMES=(UPPER,TRUNC)/POINTER=SHORT
DEFS = __USE_STD_IOSTREAM=1,VMS
CDEFS = VMS
INC = .

DEFAULT_TARGET : $(DEPS) MMS$DEPEND.MMSD INCLUDE_DEPS
	@ CONTINUE

MMS$DEPEND.MMSD : $(DEPS) MMS$GEN_DEPEND.COM
	@MMS$GEN_DEPEND.COM

MMS$GEN_DEPEND.COM :
	@ WRITE SYS$OUTPUT "Regenerating GEN_DEPEND.COM"
	@ OPEN/WRITE F MMS$GEN_DEPEND.COM
	@ WRITE F "$ OPEN/WRITE FH MMS$DEPEND.MMSD"
	@ WRITE F "$ WRITE FH ""# File generated by GEN_DEPEND.COM - DO NOT EDIT"""
	@ WRITE F "$ WRITE FH ""# Changes will be overwritten next time product is built"""
	@ WRITE F "$ WRITE FH "".IFDEF USE_DEPEND"""
	@ WRITE F "$ LOOP:"
	@ WRITE F "$  FIL = F$SEARCH(""*.MMSD"")"
	@ WRITE F "$  IF FIL .NES. """""
	@ WRITE F "$  THEN"
	@ WRITE F "$   NAM = F$PARSE(FIL,,,""NAME"")"
	@ WRITE F "$   IF NAM .EQS. ""MMS$DEPEND"" THEN GOTO LOOP"
	@ WRITE F "$   TYP = F$PARSE(FIL,,,""TYPE"")"
	@ WRITE F "$   FUL = NAM + TYP"
	@ WRITE F "$   WRITE FH "".INCLUDE "" + FUL"
	@ WRITE F "$   GOTO LOOP"
	@ WRITE F "$  ENDIF"
	@ WRITE F "$ WRITE FH "".ELSE"""
	@ WRITE F "$ WRITE FH ""DUMMY :"""
	@ WRITE F "$ WRITE FH ""    @ WRITE SYS$OUTPUT """"MMS$DEPEND.MMS must .INCLUDED by appropriate DESCRIP.MMS and not called directly"""""""
	@ WRITE F "$ WRITE FH "".ENDIF"""
	@ WRITE F "$ CLOSE FH"
	@ CLOSE F
	
INCLUDE_DEPS :
	MMK/EXTEND/MACRO=("USE_DEPEND=1") REAL_TARGET

REAL_TARGET : $(REAL_TARGETS)
	@ CONTINUE

CLEAN :
	IF F$SEARCH("*.MMSD*") .NES. "" THEN DEL/NOLOG *.MMSD*;*
    IF F$SEARCH("MMS$GEN_DEPEND.COM*") .NES. "" THEN DEL/NOLOG MMS$GEN_DEPEND.COM*;*
    IF F$SEARCH("MMS$LINK.OPT*") .NES. "" THEN DEL/NOLOG MMS$LINK.OPT*;*
    IF F$SEARCH("MMS$SYMBOLS.OPT*") .NES. "" THEN DEL/NOLOG MMS$SYMBOLS.OPT*;*
    IF F$SEARCH("*.OBJ*") .NES. "" THEN DEL/NOLOG *.OBJ*;*
    IF F$SEARCH("[.CXX_REPOSITORY*]*.*") .NES. "" THEN DEL/NOLOG [.CXX_REPOSITORY*]*.*;*
    IF F$SEARCH("CXX_REPOSITORY*.DIR") .NES. "" THEN -
		PIPE (SET SEC/PROT=O:D CXX_REPOSITORY*.DIR; && DEL CXX_REPOSITORY*.DIR;)
    IF F$SEARCH("*.OLB") .NES. "" THEN DEL/NOLOG *.OLB;*
    IF F$SEARCH("*.EXE") .NES. "" THEN DEL/NOLOG *.EXE;*
	IF F$SEARCH("*.OUT") .NES. "" THEN DEL/NOLOG *.OUT;*
	IF F$SEARCH("*.TMP") .NES. "" THEN DEL/NOLOG *.TMP;*
	IF F$SEARCH("TAGS.") .NES. "" THEN DEL/NOLOG TAGS.;*
.IFDEF EXTRA_FILES
	- DEL/NOLOG $(EXTRA_FILES)
.ENDIF

PURGE :
	- PURGE *.OLB,*.MMSD,*.OBJ,*.EXE,[.CXX_REPOSITORY]*.*

TAGS. :
	@ IF "''CTAGS'" .NES. "" THEN CTAGS --language-force=c++ --c++-kinds=+p --fields=+iaS --extra=+q *.h *.cxx *.cpp

.IFDEF USE_DEPEND
.INCLUDE MMS$DEPEND.MMSD
.ELSE
.ENDIF