-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
74 lines (54 loc) · 2.1 KB
/
Makefile
File metadata and controls
74 lines (54 loc) · 2.1 KB
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
# fun with knives, time to party like it's 1978 and we work
# at Bell Labs despite AT&T's best efforts to make us all quit
she := \#
bang := !
shebang := $(she)$(bang)
at := @
dollar := $$
doublequote := \"
define newline
endef
CC ?= gcc
CXX ?= g++
LD ?= ld
CFLAGS ?= -Wall -std=c11
CXXFLAGS ?= $(CFLAGS) -std=c++14
LDFLAGS ?=
CFLAGS_DUMPFMT := $(CFLAGS) -I./trmm/include
LDFLAGS_DUMPFMT := $(LDFLAGS) -L./trmm/lib -lrsl -ltirpc -lfl
PLATFORM := $(shell uname)
_: all_$(PLATFORM)
all_Linux: bin/mrradard BlockBunzipper bin/dumpfmt
all_Darwin: bin/mrradard BlockBunzipper # dumpfmt wont build due to missing rpc lib
README.md_fold: README.md
fold -s -w 100 README.md
MRRADARD_SRCDIR ?= mrradard/src
MRRADARD_OBJDIR ?= obj
MRRADARD_BINDIR ?= bin
$(MRRADARD_BINDIR)/mrradard: $(MRRADARD_BINDIR) $(MRRADARD_OBJDIR)/mrradard.o $(MRRADARD_OBJDIR)/daemon.o
$(CC) -o $(MRRADARD_BINDIR)/mrradard $(MRRADARD_OBJDIR)/mrradard.o $(MRRADARD_OBJDIR)/daemon.o $(LDFLAGS)
$(MRRADARD_OBJDIR)/mrradard.o: $(MRRADARD_OBJDIR) $(MRRADARD_SRCDIR)/mrradard.c $(MRRADARD_SRCDIR)/daemon.h
$(CC) -c $(MRRADARD_SRCDIR)/mrradard.c -o $(MRRADARD_OBJDIR)/mrradard.o $(CFLAGS)
$(MRRADARD_OBJDIR)/daemon.o: $(MRRADARD_OBJDIR) $(MRRADARD_SRCDIR)/daemon.c $(MRRADARD_SRCDIR)/daemon.h
$(CC) -c $(MRRADARD_SRCDIR)/daemon.c -o $(MRRADARD_OBJDIR)/daemon.o $(CFLAGS)
bin:
mkdir -p bin
obj:
mkdir -p obj
.PHONY: bin obj
all: BlockBunzipper bin/dumpfmt bin/mrradard
BlockBunzipper: obj obj/BlockBunzipper.class
echo "$(shebang)/bin/bash -x$(newline)" > BlockBunzipper
echo 'java -cp obj BlockBunzipper $(doublequote)$(dollar)$(at)$(doublequote)' >> BlockBunzipper
chmod +x BlockBunzipper
obj/BlockBunzipper.class: tools/BlockBunzipper.java lib/commons-compress-1.12.jar
mkdir -p obj
javac -cp lib/commons-compress-1.12.jar -d obj tools/BlockBunzipper.java
BlockBunzip: BlockBunzipper
java -cp 'lib/commons-compress-1.12.jar;obj' BlockBunzipper
bin/dumpfmt: bin dumpfmt/main.c
gcc -o bin/dumpfmt dumpfmt/main.c dumpfmt/lex.yy.c $(CFLAGS_DUMPFMT) $(LDFLAGS_DUMPFMT)
clean:
rm -f obj/*
rm -f BlockBunzipper bin/dumpfmt $(MRRADARD_BINDIR)/mrradard
.PHONY: clean