16 PROGS_OBJS
= $(PROGS_SRCS
:.c
=.o
)
17 CPROGS
= $(PROGS_SRCS
:.c
=$(EXE_EXT
))
18 PROGS
= $(CPROGS
) agsoptimize agsex
38 SPRITE_OBJS
= $(SPRITE_SRCS
:.c
=.o
)
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
71 SHILKA
= .
/minishilka
$(EXE_EXT
)
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
$@
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
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
122 asmparse
: y.tab.c
lex.yy.c ags_cpu.o
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
135 $(RM_F
) $(CPROGS
) minishilka
$(EXE_EXT
) $(LIB_OBJS
) $(PROGS_OBJS
) $(ASM_OBJS
) $(SPRITE_OBJS
)
137 $(RM_F
) *.out
*.o
*.rcb
*.exe
139 install: $(PROGS
:%=$(DESTDIR
)$(bindir)/%)
141 $(DESTDIR
)$(bindir)/%: %
142 install -D
-m
755 $< $@