-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMakefile
69 lines (59 loc) · 1.78 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
INC1 := -I/home/mike/repos/mvsmf/inc
INC2 := -I/home/mike/repos/crent370/include
INC3 := -I/home/mike/repos/crent370/thdmgr
INC4 := -I/home/mike/repos/httpd_cgi_sdk/inc
INCS := $(INC1) $(INC2) $(INC3) $(INC4)
DEF1 := -DLUA_USE_C89
DEF2 := -DLUA_USE_JUMPTABLE=0
DEFS := $(DEF1) $(DEF2)
CC := c2asm370
#CC := i370-mvs-gcc
#CC := gcc370
CFLAGS := -fverbose-asm -S -O1 $(DEFS) $(INCS)
# c source code files
C_FILES := \
src/common.c \
src/json.c \
src/router.c \
src/mvsmf.c \
src/authmw.c \
src/logmw.c \
src/dsapi.c \
src/infoapi.c \
src/jobsapi.c \
src/cgxstart.c
# generated .s assembler source files (one for each source file)
S_FILES := $(foreach filename,$(C_FILES),$(filename:.c=.s))
# object files (one for each .c and .asm source file)
O_FILES := $(foreach filename,$(C_FILES),$(filename:.c=.o)) \
$(foreach filename,$(A_FILES),$(filename:.asm=.o))
# expoort MSGCLASS
export MSGCLASS=H
# export MACn variables for mvsasm->jobasm script
export MAC1=FIX0MIG.CRENT370.MACLIB
#export MAC2=SYS1.HASPSRC
# export dataset names used by mvsasm script
export MVSASM_PUNCH=FIX0MIG.MVSMF.OBJECT
export MVSASM_SYSLMOD=FIX0MIG.MVSMF.NCALIB
all: $(S_FILES) $(O_FILES)
@echo "Done"
# Note: PHONY is important here. Without it, implicit rules will try
# to build the executable "all", since the prereqs are ".o" files.
.PHONY: all
# build object files from the generated assembler files (.s)
%.o: %.s
@echo "mvsasm $(notdir $<)"
@mvsasm "$<"
@touch "$@"
# build object files from assembler files (.asm)
%.o: %.asm
@echo "mvsasm $(notdir $<)"
@mvsasm "$<"
@touch "$@"
# compile C source files (.c) into assembler files (.s)
%.s: %.c
@echo "Compile $(notdir $<)"
$(CC) $(CFLAGS) -c $< -o $@
# remove generated files
clean:
@rm -f $(S_FILES) $(O_FILES)