-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathmakefile
132 lines (99 loc) · 4.35 KB
/
makefile
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
126
127
128
129
130
131
132
#-----------------------------------------------------------
# User-defined part start
#
# The shell we use
# NOTE - UTF is not allowed for ILE source (yet) - so convert to WIN-1252
# NOTE!! gmake is case sensitive for targets !!
# BIN_LIB is the destination library for the service program.
# the rpg modules and the binder source file are also created in BIN_LIB.
# binder source file and rpg module can be remove with the clean step (make clean)
.PHONY=all
BIN_LIB=ILECURL
DIR=src
LIBLIST=$(BIN_LIB)
DBGVIEW=*ALL
TARGET_CCSID=*JOB
TARGET_RELEASE=*PRV
STMF=$(DIR)/$@
OBJ=$(notdir $*)
# CL - settings
CLFLAGS=DBGVIEW(*ALL)
CLINCLUDE=*SRCFILE
# C - Settings
CFLAGS=OPTIMIZE(10) ENUM(*INT) TERASPACE(*YES) STGMDL(*INHERIT) SYSIFCOPT(*IFSIO) DBGVIEW(*ALL)
CINCLUDE='/QIBM/include' 'include'
# RPG - Settings
RPGINCLUDE='./..'
RPGFLAGS=DBGVIEW(*LIST) TGTRLS($(TARGET_RELEASE))
# SQLRPG - Settings
SQLRPGINCLUDE='./..'
SQLRPGFLAGS=DBGVIEW(*LIST) RPGPPOPT(*LVL2)
# CMD - Settings
CMDFLAGS=PRDLIB($(BIN_LIB)) REPLACE(*YES)
# DSPF - Settings
DSPFFLAGS=REPLACE(*YES)
# SQL - Settings
SQLFLAGS=COMMIT(*NONE)
#
# User-defined part end
#-----------------------------------------------------------
# Dependency list --- list all
all: $(BIN_LIB).lib ILEcurl.srvpgm release
#-----------------------------------------------------------
%.lib:
-system -q "CRTLIB $* TYPE(*TEST)"
ILEcurl.srvpgm: ILEcurl.rpgle ILEcurl.bnddir hdr
compile.py --stmf="$(STMF)" --lib="$(BIN_LIB)" --liblist="$(LIBLIST)" \
--flags="MODULE(ILEcurl) ALWLIBUPD(*YES) TGTRLS($(TARGET_RELEASE)) DETAIL(*BASIC)"
ILEcurl.bnddir:
-system "DLTBNDDIR BNDDIR($(BIN_LIB)/$(BIN_LIB))"
-system "CRTBNDDIR BNDDIR($(BIN_LIB)/$(BIN_LIB))"
-system "ADDBNDDIRE BNDDIR($(BIN_LIB)/$(BIN_LIB)) OBJ((*LIBL/$(BIN_LIB) *SRVPGM)) POSITION(*FIRST)"
%.rpgle:
compile.py --stmf="$(STMF)" --lib="$(BIN_LIB)" --liblist="$(LIBLIST)" --flags="$(RPGFLAGS)" --include="$(RPGINCLUDE)"
%.sqlrpgle:
compile.py --stmf="$(STMF)" --lib="$(BIN_LIB)" --liblist="$(LIBLIST)" --flags="$(SQLRPGFLAGS)" --include="$(SQLRPGINCLUDE)"
%.c:
compile.py --stmf="$(STMF)" --lib="$(BIN_LIB)" --liblist="$(LIBLIST)" --flags="$(CFLAGS)" --include="$(CINCLUDE)"
%.clle:
compile.py --stmf="$(STMF)" --lib="$(BIN_LIB)" --liblist="$(LIBLIST)" --flags="$(CLFLAGS)" --include="$(CLINCLUDE)"
%.cmd:
compile.py --stmf="$(STMF)" --lib="$(BIN_LIB)" --liblist="$(LIBLIST)" --flags="$(CMDFLAGS)"
%.dspf:
compile.py --stmf="$(STMF)" --lib="$(BIN_LIB)" --liblist="$(LIBLIST)" --flags="$(DSPFFLAGS)"
%.menu:
compile.py --stmf="$(STMF)" --lib="$(BIN_LIB)" --liblist="$(LIBLIST)" --flags="$(MENUFLAGS)"
%.pnlgrp:
compile.py --stmf="$(STMF)" --lib="$(BIN_LIB)" --liblist="$(LIBLIST)" --flags="$(PNLGRPFLAGS)"
%.sql:
compile.py --stmf="$(STMF)" --lib="$(BIN_LIB)" --liblist="$(LIBLIST)" --flags="$(SQLFLAGS)"
hdr:
-system -q "CRTSRCPF FILE($(BIN_LIB)/QRPGLEREF) RCDLEN(132)"
system "CPYFRMSTMF FROMSTMF('headers/ILEcurl.rpgle') TOMBR('/QSYS.lib/$(BIN_LIB).lib/QRPGLEREF.file/ILEcurl.mbr') MBROPT(*REPLACE)"
all:
@echo Build success!
cleanup:
-system -q "DLTOBJ OBJ($(BIN_LIB)/*ALL) OBJTYPE(*MODULE)"
-system -q "DLTOBJ OBJ($(BIN_LIB)/QSRVSRC) OBJTYPE(*FILE)"
-system -q "DLTOBJ OBJ($(BIN_LIB)/EVFEVENT) OBJTYPE(*FILE)"
-system -q "DLTOBJ OBJ($(BIN_LIB)/RELEASE) OBJTYPE(*FILE)"
-system -q "DLTOBJ OBJ($(BIN_LIB)/TS*) OBJTYPE(*PGM)"
release: cleanup
@echo " -- Creating ILEcurl release. --"
@echo " -- Creating save file. --"
system "CRTSAVF FILE($(BIN_LIB)/RELEASE)"
system "SAVLIB LIB($(BIN_LIB)) DEV(*SAVF) SAVF($(BIN_LIB)/RELEASE) TGTRLS($(TARGET_RELEASE)) OMITOBJ((RELEASE *FILE)) DTACPR(*HIGH)"
-rm -r release
-mkdir release
system "CPYTOSTMF FROMMBR('/QSYS.lib/$(BIN_LIB).lib/RELEASE.FILE') TOSTMF('./release/release.savf') STMFOPT(*REPLACE) STMFCCSID(1252) CVTDTA(*NONE)"
@echo " -- Cleaning up... --"
system "DLTOBJ OBJ($(BIN_LIB)/RELEASE) OBJTYPE(*FILE)"
@echo " -- Release created! --"
@echo ""
@echo "To install the release, run:"
@echo " > CRTLIB $(BIN_LIB)"
@echo " > CPYFRMSTMF FROMSTMF('./release/release.savf') TOMBR('/QSYS.lib/$(BIN_LIB).lib/RELEASE.FILE') MBROPT(*REPLACE) CVTDTA(*NONE)"
@echo " > RSTLIB SAVLIB($(BIN_LIB)) DEV(*SAVF) SAVF($(BIN_LIB)/RELEASE)"
@echo ""
@echo "Or restore into existing application library"
@echo " > RSTOBJ OBJ(*ALL) SAVLIB($(BIN_LIB)) DEV(*SAVF) SAVF($(BIN_LIB)/RELEASE) MBROPT(*ALL) ALWOBJDIF(*FILELVL) RSTLIB(yourlib)