Merge pull request #416 from ISSOtm/makefile

Improve Makefile
This commit is contained in:
Eldred Habert
2019-09-22 01:55:51 +02:00
committed by GitHub
3 changed files with 31 additions and 18 deletions

View File

@@ -2,8 +2,8 @@ language: c
sudo: required
install:
- ./.travis-deps.sh
- make
- sudo make install
- make Q=
- sudo make install Q=
os:
- linux
- osx

View File

@@ -6,6 +6,9 @@
# SPDX-License-Identifier: MIT
#
.SUFFIXES:
.SUFFIXES: .h .l .y .c .o
# User-defined variables
Q := @
@@ -33,6 +36,10 @@ CFLAGS := -g
# Non-overridable CFLAGS
REALCFLAGS := ${CFLAGS} ${WARNFLAGS} -std=c99 -D_POSIX_C_SOURCE=200809L \
-Iinclude -DBUILD_VERSION_STRING=\"${VERSION_STRING}\"
# Overridable LDFLAGS
LDFLAGS :=
# Non-overridable LDFLAGS
REALLDFLAGS := ${LDFLAGS} ${WARNFLAGS}
YFLAGS :=
LFLAGS := --nounistd
@@ -62,8 +69,7 @@ rgbasm_obj := \
src/extern/utf8decoder.o \
src/version.o
src/asm/asmy.h: src/asm/asmy.c
src/asm/locallex.o src/asm/globlex.o src/asm/lexer.o src/asm/constexpr.o: src/asm/asmy.h
src/asm/globlex.o src/asm/lexer.o src/asm/constexpr.o: src/asm/asmy.h
rgblink_obj := \
src/link/assign.o \
@@ -80,7 +86,6 @@ rgblink_obj := \
src/extern/err.o \
src/version.o
src/link/parser.h: src/link/parser.c
src/link/lexer.o: src/link/parser.h
rgbfix_obj := \
@@ -96,27 +101,32 @@ rgbgfx_obj := \
src/version.o
rgbasm: ${rgbasm_obj}
$Q${CC} ${REALCFLAGS} -o $@ ${rgbasm_obj} -lm
$Q${CC} ${REALLDFLAGS} -o $@ ${rgbasm_obj} -lm
rgblink: ${rgblink_obj}
$Q${CC} ${REALCFLAGS} -o $@ ${rgblink_obj}
$Q${CC} ${REALLDFLAGS} -o $@ ${rgblink_obj}
rgbfix: ${rgbfix_obj}
$Q${CC} ${REALCFLAGS} -o $@ ${rgbfix_obj}
$Q${CC} ${REALLDFLAGS} -o $@ ${rgbfix_obj}
rgbgfx: ${rgbgfx_obj}
$Q${CC} ${REALCFLAGS} ${PNGLDFLAGS} -o $@ ${rgbgfx_obj} ${PNGLDLIBS}
$Q${CC} ${REALLDFLAGS} ${PNGLDFLAGS} -o $@ ${rgbgfx_obj} ${PNGLDLIBS}
# Rules to process files
# We want the yacc and lex invocations to pass through our rules
.y.o:
.l.o:
# yacc- and lex-generated C files have an accompanying header
.c.h:
$Qtouch $@
.y.c:
$Q${YACC} -d ${YFLAGS} -o $@ $<
.l.o:
$Q${RM} $*.c
$Q${LEX} ${LFLAGS} -o $*.c $<
$Q${CC} ${REALCFLAGS} -c -o $@ $*.c
$Q${RM} $*.c
.l.c:
$Q${LEX} ${LFLAGS} -o $@ $<
.c.o:
$Q${CC} ${REALCFLAGS} ${PNGCFLAGS} -c -o $@ $<
@@ -125,12 +135,13 @@ rgbgfx: ${rgbgfx_obj}
# for the html documentation.
clean:
$Q${RM} rgbasm rgbasm.exe ${rgbasm_obj}
$Q${RM} rgblink rgblink.exe ${rgblink_obj}
$Q${RM} rgbfix rgbfix.exe ${rgbfix_obj}
$Q${RM} rgbgfx rgbgfx.exe ${rgbgfx_obj}
$Q${RM} rgbasm rgbasm.exe src/asm/*.o
$Q${RM} rgblink rgblink.exe src/link/*.o
$Q${RM} rgbfix rgbfix.exe src/fix/*.o
$Q${RM} rgbgfx rgbgfx.exe src/gfx/*.o
$Q${RM} src/asm/asmy.c src/asm/asmy.h
$Q${RM} src/link/lexer.c src/link/parser.c src/link/parser.h
$Q${RM} src/extern/*.o
# Target used to remove all html files generated by the wwwman target

2
src/link/.gitignore vendored
View File

@@ -1,2 +1,4 @@
parser.c
parser.h
lexer.c
lexer.h