-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy patholdmkfile
74 lines (65 loc) · 2.59 KB
/
oldmkfile
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
CC= gcc
YACC= bison
DEBUG = -g
BUILDDIR= build
LIBDIR= lib
INCLUDEDIR= include
SRCDIR= src
NEWSRC = new
TESTDIR= test
UNITDIR=unit
vpath %.c src
vpath %.s src
vpath %.h include
vpath %.so lib
vpath %.la lib
VPATH= src:include
CFLAGS= -I $(INCLUDEDIR) -ansi -Wall -Wpedantic -pedantic-errors -Wno-comment -Wno-incompatible-pointer-types
UNITFLAGS = -I $(INCLUDEDIR)/new/ -Wno-incompatible-pointer-types
#CFLAGS= -I $(INCLUDEDIR) -ansi
#CFLAGS= -I $(INCLUDEDIR) -std=c90
#CFLAGS= -I $(INCLUDEDIR) -std=c90 -Wpedantic
#CFLAGS= -I $(INCLUDEDIR) -no-pie
FILES := $(subst $(SRCDIR)/,,$(wildcard src/*.c))
AFILES := $(subst $(SRCDIR)/,,$(wildcard src/*.s))
OUTFILE := $(INCLUDEDIR)/outfile.in
HFILES:= $(subst $(INCLUDEDIR)/,,$(wildcard $(INCLUDEDIR)/*.h))
SOURCES := $(patsubst %,$(SRCDIR)/%,$(FILES))
OBJECTS := $(patsubst %.c,$(BUILDDIR)/%.o,$(FILES))
ASSEMBLYS := $(patsubst %.s,$(BUILDDIR)/%.o,$(AFILES))
DEPS := $(patsubst %.c,, $(BUILDDIR)/%.D,$(FILES))
NEWFILES := $(wildcard $(SRCDIR)/$(NEWSRC)/*.c)
NEWCLASSOBJS := $(patsubst $(SRCDIR)/$(NEWSRC)/%.c, $(BUILDDIR)/%.o, $(NEWFILES))
NDEPS := $(patsubst %.c,, $(BUILDDIR)/%.D,$(NEWFILES))
UTESTABLES := $(wildcard $(SRCDIR)/new/*.c)
UTESTFILES := $(patsubst $(SRCDIR)/new/%.c,$(TESTDIR)/$(UNITDIR)/%_test.c,$(UTESTABLES))
#UTESTFILES := $(wildcard $(TESTDIR)/$(UNITDIR)/*.c)
UNITTESTS := $(patsubst %.c,%, $(UTESTFILES))
.PHONY: all clean run unit_tests $(BUILDDIR)
$(BUILDDIR)/%.o: $(SRCDIR)/$(NEWSRC)/%.c $(INCLUDEDIR)/%.h $(BUILDDIR)/%.d| $(BUILDDIR)
$(CC) $(CFLAGS) -c $< -o $@
$(BUILDDIR)/%.d: $(SRCDIR)/$(NEWSRC)/%.c $(INCLUDEDIR)/%.h
$(CC) $(CFLAGS) $(DEBUG) -MM $< -o $@
-include $(NDEPS)
all: $(BUILDDIR)/sclex
$(BUILDDIR):
[ -d $(BUILDDIR) ] || mkdir -p $(BUILDDIR)
$(SRCDIR)/sclex.yy.c: $(INCLUDEDIR)/outfile.in $(TESTDIR)/lex.l
$(BUILDDIR)/sclex $(TESTDIR)/lex.l; mv sclex.yy.c $(SRCDIR)
$(OUT): $(OUTFILE)
$(OUTFILE):
$(BUILDDIR)/%.o: %.s | $(BUILDDIR)
$(CC) $(CFLAGS) $(DEBUG) -c $< -o $@
$(BUILDDIR)/%.o: %.c $(INCLUDEDIR)/%.h $(BUILDDIR)/%.d| $(BUILDDIR)
$(CC) $(CFLAGS) $(DEBUG) -c $< -o $@
$(BUILDDIR)/%.d: $(SRCDIR)/%.c $(INCLUDEDIR)/%.h
$(CC) $(CFLAGS) $(DEBUG) -MM $< -o $@
-include $(DEPS)
$(BUILDDIR)/sclex: $(ASSEMBLYS) $(OBJECTS) $(OUTFILE)
$(CC) $(CFLAGS) $(DEBUG) $(ASSEMBLYS) $(OBJECTS) -o $@
run:
./build/sclex test/expr.l
lex_driver: test/lex_test.c $(SRCDIR)/sclex.yy.c $(BUILDDIR)/basebuffer.o
$(CC) $(CFLAGS) $(DEBUG) -g $^ -o $(BUILDDIR)/$@
clean:
rm $(UNITTESTS); rm $(BUILDDIR)/bufferdriver $(BUILDDIR)/hashdriver $(BUILDDIR)/sclex $(BUILDDIR)/lex_driver $(SRCDIR)/sclex.yy.c $(BUILDDIR)/*.o;rm -rf $(BUILDDIR)/*.dSYM; rmdir $(BUILDDIR)