-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
77 lines (68 loc) · 2.03 KB
/
Makefile
File metadata and controls
77 lines (68 loc) · 2.03 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
74
75
76
77
include config.mak
SRC = src/libfile.c
OBJ = src/libfile.o
all: libfile.a libfile.so.1.0.2 include/file.h
# Static library
libfile.a: $(OBJ)
@echo "AR $@"
@ar rcs $@ $^
# Shared library
libfile.so.1.0.2: $(OBJ)
@echo "LD $@"
@$(CC) $(LDFLAGS) -shared -o $@ $^
@echo "LN $@"
@ln -s ./libfile.so.1.0.2 libfile.so.1
@ln -s ./libfile.so.1 libfile.so
@echo "STRIP $@"
@strip $@
include/file.h: $(SRC)
@mkdir include
@echo "H $@"
@echo "#ifndef FILE_H" > $@
@echo "#define FILE_H" >> $@
@echo "" >> $@
@echo "#include <fcntl.h>" >> $@
@echo "#include <unistd.h>" >> $@
@echo "#include <stdint.h>" >> $@
@echo "#include <string.h>" >> $@
@echo "" >> $@
@echo '#define ELFMAG "\x7f""ELF"' >> $@
@echo '#define ARMAG "!<arch>\\n"' >> $@
@echo "" >> $@
@echo "int file_type(const char *path);" >> $@
@echo "int file_arch(const char *path);" >> $@
@echo "" >> $@
@echo "#endif // FILE_H" >> $@
# Object rules
src/%.o: src/%.c
@echo "CC $@"
@$(CC) $(CFLAGS) -c $< -o $@
install-deb:
ifeq ($(CONFIGARCH),32)
@echo "CP include/file.h"
@echo "Copying needs root permissions, please allow."
@sudo cp include/file.h /usr/include
@echo "CP libfile.so.1.0.2, libfile.so.1, libfile.so"
@sudo cp libfile.so.1.0.2 /usr/lib/i386-linux-gnu
@sudo cp libfile.so.1 /usr/lib/i386-linux-gnu
@sudo cp libfile.so /usr/lib/i386-linux-gnu
else
@echo "CP include/file.h"
@echo "Copying needs root permissions, please allow."
@sudo cp include/file.h /usr/include
@echo "CP libfile.so.1.0.2, libfile.so.1, libfile.so"
@sudo cp libfile.so.1.0.2 /usr/lib/x86_64-linux-gnu
@sudo cp libfile.so.1 /usr/lib/x86_64-linux-gnu
@sudo cp libfile.so /usr/lib/x86_64-linux-gnu
endif
install-arch:
@echo "CP include/file.h"
@echo "Copying needs root permissions, please allow."
@sudo cp include/file.h /usr/include
@echo "CP libfile.so.1.0.2, libfile.so.1, libfile.so"
@sudo cp libfile.so.1.0.2 /usr/lib
@sudo cp libfile.so.1 /usr/lib
@sudo cp libfile.so /usr/lib
clean:
@echo "RM src/*.o *.a *.so.* *.so include/"
@rm -rf src/*.o *.a *.so.* *.so include/