-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathMakefile
More file actions
84 lines (65 loc) · 3.42 KB
/
Makefile
File metadata and controls
84 lines (65 loc) · 3.42 KB
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
FILE_1=digger_tpc
FILE_2=digger_tit
BIN_FILE_1=${FILE_1}.bin
BIN_FILE_2=${FILE_2}.bin
OUT_FILE_1=${FILE_1}.out
OUT_FILE_2=${FILE_2}.out
OPT_FLAG=-Os -mlra
XGCC=/home/prcoder/xgcc
GCC_FLAGS=-std=gnu23 -fomit-frame-pointer -msoft-float -fcprop-registers -fPIC -nostartfiles -nodefaultlibs -nostdlib -m10 $(OPT_FLAG) -I$(XGCC)/include
GCC_ASM_FLAGS=-S -fverbose-asm
AS_FLAGS=-mno-fpu -mlimited-eis -pic
GMPI_API_URL=http://10.0.0.55/api
GMPI_UPLOAD_DIR=/BK_Uploads
all: asm-files bin-files
asm-files: digger.c sprites.c tools.c
pdp11-aout-gcc ${GCC_FLAGS} ${GCC_ASM_FLAGS} digger.c
pdp11-aout-gcc ${GCC_FLAGS} ${GCC_ASM_FLAGS} sprites.c
pdp11-aout-gcc ${GCC_FLAGS} ${GCC_ASM_FLAGS} tools.c
digger-main-file: digger.c
pdp11-aout-gcc ${GCC_FLAGS} -c -o digger.o digger.c
title-main-file: title.c
pdp11-aout-gcc ${GCC_FLAGS} -c -o title.o title.c
levels-file: digger_levels.c
pdp11-aout-gcc ${GCC_FLAGS} -c -o digger_levels.o digger_levels.c
short-font-file: digger_short_font.c
pdp11-aout-gcc ${GCC_FLAGS} -c -o digger_short_font.o digger_short_font.c
full-font-file: digger_full_font.c
pdp11-aout-gcc ${GCC_FLAGS} -c -o digger_full_font.o digger_full_font.c
sprites-file: digger_sprites.c
pdp11-aout-gcc ${GCC_FLAGS} -c -o digger_sprites.o digger_sprites.c
sprites-file-title: digger_sprites_title.c
pdp11-aout-gcc ${GCC_FLAGS} -c -o digger_sprites_title.o digger_sprites_title.c
music-file-title: digger_music_title.c
pdp11-aout-gcc ${GCC_FLAGS} -c -o digger_music_title.o digger_music_title.c
crt0:
pdp11-aout-as ${AS_FLAGS} crt0.s -o crt0.o
libs: memory.s divmulmod.s sprites.c sprites_title.c sound.c tools.c
pdp11-aout-as ${AS_FLAGS} memory.s -o memory.o
pdp11-aout-as ${AS_FLAGS} mulhi3.s -o mulhi3.o
pdp11-aout-gcc ${GCC_FLAGS} -c -o sprites.o sprites.c
pdp11-aout-gcc ${GCC_FLAGS} -c -o sprites_title.o sprites_title.c
pdp11-aout-gcc ${GCC_FLAGS} -c -o sound.o sound.c
pdp11-aout-gcc ${GCC_FLAGS} -c -o tools.o tools.c
pdp11-aout-ar rcs libs.a memory.o sprites.o sound.o tools.o mulhi3.o
digger-out-file: crt0 digger-main-file sprites-file short-font-file levels-file libs
pdp11-aout-ld -T a.out.ld -Map digger.map -o ${OUT_FILE_1} crt0.o digger_sprites.o digger_short_font.o digger_levels.o digger.o libs.a
# sprites_title.o передаётся ld явно ПЕРЕД libs.a — таким образом версии
# блиттеров со встроенным `music_tick` (sp_4_15_put / sp_4_15_h_mirror_put /
# sp_put / sp_paint_brick_long) подхватываются именно из этого .o, а не из
# sprites.o в libs.a. В диггерной сборке sprites_title.o не упоминается.
title-out-file: crt0 title-main-file sprites-file-title full-font-file music-file-title libs
pdp11-aout-ld -T a.out.ld -Map title.map -o ${OUT_FILE_2} crt0.o digger_sprites_title.o digger_full_font.o digger_music_title.o title.o sprites_title.o libs.a
aout2bin:
gcc aout2bin.c -o aout2bin
bin-files: aout2bin digger-out-file title-out-file
./aout2bin ${OUT_FILE_1} ${BIN_FILE_1}
./aout2bin ${OUT_FILE_2} ${BIN_FILE_2}
g-mpi: bin-files
curl -i -o /dev/null -X POST -H "Content-Type: multipart/form-data" -F "storeas=${GMPI_UPLOAD_DIR}/${BIN_FILE_1}" -F "size=$(shell stat -c%s ${BIN_FILE_1})" -F "file=@${BIN_FILE_1}" "${GMPI_API_URL}/upload"
curl -i -s -o /dev/null "${GMPI_API_URL}/run?dev=file&emu10=no&fname=${GMPI_UPLOAD_DIR}/${BIN_FILE_1}"
docs:
doxygen Doxyfile
clean:
rm -f *.o *.a *.out *.map aout2bin
rm -rf docs/*