-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmakefile
40 lines (30 loc) · 809 Bytes
/
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
SOURCES := $(shell find src -type f -name *.c)
HEADERS := $(shell find include -type f -name *.h)
OBJECTS := $(patsubst src/%,obj/%,$(SOURCES:.c=.o))
EXENAME := jld
$(EXENAME): $(OBJECTS)
gcc $(OBJECTS) -ljtools -o $@
libjld.a: $(OBJECTS)
ar -rc $@ $(filter-out obj/args.o obj/main.o,$(OBJECTS))
ranlib $@
obj/%.o: src/%.c $(HEADERS)
@mkdir -p obj
gcc -c -o $@ $< -Wall -g -Iinclude
debug: $(EXENAME)
gdb $(EXENAME)
run: $(EXENAME)
./$(EXENAME)
clean:
rm -rf obj/*.o
rm -rf $(EXENAME)
libinclude: $(HEADERS)
mkdir -p libinclude
rm -rf libinclude/*
cp include/linker.h libinclude/jld.h
install: $(EXENAME) libjld.a libinclude
cp $(EXENAME) /usr/local/bin
cp libjld.a /usr/local/lib
rm -rf /usr/local/include/jld
cp -r libinclude /usr/local/include/jld
.PHONY: clean
.PHONY: install