-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathMakefile.linux
More file actions
48 lines (38 loc) · 1.12 KB
/
Makefile.linux
File metadata and controls
48 lines (38 loc) · 1.12 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
CC = gcc
CFLAGS = -w -march=native -O3 -static -finline-functions
LDFLAGS = -lm -lportmidi -lsqlite3
LDDCLANG = -ldclang
OBJECTS = main.o
EXECUTABLE = dclang
LIBOBJ = libdclang.o
LIBSOOBJ = libdclang.so
LIBTESTC = libtest.c
HEADER = dclang.h
PREFIX ?= /usr/local
.PHONY: clean lib libtest
default: dclang
%.o: %.c
$(CC) -c -o $@ $< $(CFLAGS)
dclang: $(OBJECTS)
$(CC) $(OBJECTS) -o $@ $(LDFLAGS)
libdclang.o:
$(CC) -c -fPIC -o $@ libdclang.c $(CFLAGS)
lib: libdclang.o
$(CC) -shared $(LIBOBJ) -o $(LIBSOOBJ) $(LDFLAGS)
libtest: lib install
$(CC) $(LIBTESTC) -o $@ $(LDDCLANG)
install: lib dclang
mkdir -p $(PREFIX)/include $(PREFIX)/lib $(PREFIX)/bin
cp -a $(HEADER) $(PREFIX)/include/
cp -a $(LIBSOOBJ) $(PREFIX)/lib/
rm -f $(PREFIX)/lib/dclang
ln -s $(shell pwd)/lib $(PREFIX)/lib/dclang
cp -a $(EXECUTABLE) $(PREFIX)/bin/
clean:
rm -rf examples/*~ *~ dclang libtest *.o *.so
docker-image:
docker buildx build --builder multiarch \
--platform linux/amd64,linux/arm64 \
--tag akjmicro17/dclang:latest --load \
-f contrib/Dockerfile \
.