forked from econde/p16_assembler
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
56 lines (32 loc) · 1.22 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
ifndef WINDOWS
all: pas
GPP = g++
GCC = gcc
EXECUTABLE = pas
CFLAGS = -c -g -Wa,-a=build/$*.lst -Wall
src/p16.lex.cpp: src/p16.l src/p16.tab.cpp
flex -o src/p16.lex.cpp src/p16.l
src/p16.tab.cpp src/p16.tab.hpp: src/p16.ypp
bison --defines=src/p16.tab.hpp --output=src/p16.tab.cpp -v -t src/p16.ypp
#-------------------------------------------------------------------------------
else
all: pas.exe
GPP = /usr/bin/x86_64-w64-mingw32-g++
GCC = /usr/bin/x86_64-w64-mingw32-gcc
EXECUTABLE = pas.exe
CFLAGS = -c -O3 -Wa,-a=build/$*.lst -Wall
LDFLAGS = -Wl,-static -static-libgcc -static-libstdc++
endif
#-------------------------------------------------------------------------------
CXXFLAGS = $(CFLAGS) -std=c++11 -U__STRICT_ANSI__
build/%.o: src/%.c
$(GPP) -o build/$*.o $(CXXFLAGS) $<
build/%.o: src/%.cpp
$(GPP) -o build/$*.o $(CXXFLAGS) $<
clean:
rm -rf build/*
#-------------------------------------------------------------------------------
OBJECTS = pas.o p16.tab.o p16.lex.o instruction.o expression.o sections.o symbols.o \
relocations.o cpp_printf.o listing.o code_generator.o error.o value_type.o directive.o
$(EXECUTABLE): $(addprefix build/, $(OBJECTS))
$(GPP) $(LDFLAGS) -o $@ $(addprefix build/, $(OBJECTS))