hbmap: fix iterator truncation when size_t < 32bit
[rofl0r-agsutils.git] / Makefile
blob1b2472efc3c215ae2557e26cd38832f04dd6356f
1 prefix=/usr/local
2 bindir=$(prefix)/bin
4 PROGS_SRCS = \
5 agstract.c \
6 agspack.c \
7 agscriptxtract.c \
8 agssemble.c \
9 agsdisas.c \
10 agssim.c \
11 agsprite.c \
12 agsalphahack.c \
13 agsalphainfo.c \
14 agsinject.c
16 PROGS_OBJS = $(PROGS_SRCS:.c=.o)
17 CPROGS = $(PROGS_SRCS:.c=$(EXE_EXT))
18 PROGS = $(CPROGS) agsoptimize agsex
20 LIB_SRCS = \
21 ags_cpu.c \
22 ByteArray.c \
23 Clib32.c \
24 DataFile.c \
25 Script.c \
26 File.c \
27 List.c \
28 MemGrow.c \
29 RoomFile.c \
30 StringEscape.c
32 SPRITE_SRCS = \
33 defpal.c \
34 lzw.c \
35 miniz_tinfl.c \
36 SpriteFile.c
38 SPRITE_OBJS = $(SPRITE_SRCS:.c=.o)
40 ASM_SRCS = \
41 Assembler.c \
42 hsearch.c \
43 preproc.c \
44 tokenizer.c
46 ASM_OBJS = $(ASM_SRCS:.c=.o)
48 LIB_OBJS = $(LIB_SRCS:.c=.o)
50 CFLAGS_WARN = -Wall -Wextra -Wno-unknown-pragmas -Wno-sign-compare -Wno-switch -Wno-unused -Wno-pointer-sign -Wno-empty-body -Wno-type-limits
52 GEN_FILES = scmd_tok.h scmd_tok.c scmd_tok.shilka regname_tok.h regname_tok.c regname_tok.shilka
55 ifeq ($(WINBLOWS),1)
56 CPPFLAGS=-DNO_MMAN
57 CC=gcc
58 EXE_EXT=.exe
59 RM_F=del
60 else
61 RM_F=rm -f
62 endif
64 -include config.mak
66 ifeq ($(HOSTCC),)
67 HOSTCC = $(CC)
68 endif
70 ifeq ($(SHILKA),)
71 SHILKA = ./minishilka$(EXE_EXT)
72 endif
74 all: $(PROGS)
76 $(PROGS_OBJS): $(LIB_OBJS)
78 agssemble$(EXE_EXT): agssemble.o $(LIB_OBJS) $(ASM_OBJS)
79 agsprite$(EXE_EXT): agsprite.o $(LIB_OBJS) $(SPRITE_OBJS)
81 minishilka$(EXE_EXT): minishilka.c
82 $(HOSTCC) -g3 -O0 $< -o $@
84 %.o: %.c
85 $(CC) $(CPPFLAGS) $(CFLAGS) $(CFLAGS_WARN) -o $@ -c $<
87 %$(EXE_EXT): %.o $(LIB_OBJS)
88 $(CC) $(CPPFLAGS) $(CFLAGS) $(CFLAGS_WARN) -o $@ $^ $(LDFLAGS)
90 kw_search.h: scmd_tok.h scmd_tok.c regname_tok.h regname_tok.c
92 Assembler.o: kw_search.h
94 scmd_tok.h: ags_cpu.h
95 awk 'BEGIN{print("#ifndef BISON");} /#define SCMD_/{print $$1 " KW_" $$2 " (KW_TOK_SCMD_BASE + " $$3 ")";}END{print("#endif");}' < ags_cpu.h > $@
97 scmd_tok.shilka: ags_cpu.h
98 awk 'BEGIN{printf "%%type short\n%%%%\n";}/[\t ]\[SCMD_/{w=substr($$3,3,length($$3)-4);s=length(w)>=8?"":"\t";print w s "\t{return KW_" substr($$1,2,length($$1)-2) ";}" ;}END{print "%other\t\t{return 0;}";}' < ags_cpu.h > $@
100 scmd_tok.c: $(SHILKA)
101 scmd_tok.c: scmd_tok.shilka
102 $(HOSTRUN) $(SHILKA) -inline -strip -pKW_SCMD_ -no-definitions $<
104 regname_tok.h: ags_cpu.h
105 awk '/[\t ]\[AR_/{r=substr($$1,2,length($$1)-2);printf("#define RN_%s\t(RN_TOK_BASE + %s)\n",r,r);}' < ags_cpu.h > $@
107 regname_tok.shilka: ags_cpu.h
108 awk 'BEGIN{printf "%%type short\n%%%%\n";}/[\t ]\[AR_/{r=substr($$1,2,length($$1)-2);s=substr($$3,2,length($$3)-3);printf("%s\t{return RN_%s;}\n",s,r);}END{print("%other\t\t{return 0;}");}' < ags_cpu.h > $@
110 regname_tok.c: $(SHILKA)
111 regname_tok.c: regname_tok.shilka
112 $(HOSTRUN) $(SHILKA) -inline -strip -pRN_ -no-definitions $<
114 lex.yy.c: scmd_tok.c regname_tok.c
115 lex.yy.c: asmlex.l
116 $(LEX) $<
118 y.tab.h: y.tab.c
119 y.tab.c: asmparse.y
120 $(YACC) -d $<
122 asmparse: y.tab.c lex.yy.c ags_cpu.o
123 $(CC) -o $@ $^
125 rcb:
126 make -f Makefile.binary FNAME=agstract
127 make -f Makefile.binary FNAME=agspack
128 make -f Makefile.binary FNAME=agscriptxtract
129 make -f Makefile.binary FNAME=agssemble
130 make -f Makefile.binary FNAME=agsdisas
131 make -f Makefile.binary FNAME=agsinject
132 make -f Makefile.binary FNAME=agssim
134 clean:
135 $(RM_F) $(CPROGS) minishilka$(EXE_EXT) $(LIB_OBJS) $(PROGS_OBJS) $(ASM_OBJS) $(SPRITE_OBJS)
136 $(RM_F) $(GEN_FILES)
137 $(RM_F) *.out *.o *.rcb *.exe
139 install: $(PROGS:%=$(DESTDIR)$(bindir)/%)
141 $(DESTDIR)$(bindir)/%: %
142 install -D -m 755 $< $@
144 .PHONY: all clean