forked from theNerd247/libstr
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
86 lines (64 loc) · 1.74 KB
/
Makefile
File metadata and controls
86 lines (64 loc) · 1.74 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
78
79
80
81
82
83
84
85
##############################
# Makefile for libstr
##############################
SHELL=/bin/sh
CC=gcc
VERSION=0.0.2
DESTDIR=
PREFIX=$(DESTDIR)/usr
INSTALLDIR=$(PREFIX)/lib
HDRINSTALLDIR=$(PREFIX)/include
LIBNAME=libstr
LIBDIR=lib
SONAME=$(LIBNAME).so
OUTNAME=$(LIBNAME).so.$(VERSION)
PKGDIR=pkgs
PKGNAME=$(LIBNAME)-$(VERSION)
PKGLIST=Makefile src/ include/
IDIR=include
LFLAGS=-I$(IDIR) -fPIC -g #uncomment for debuging with gdb
SHRDFLAGS= -shared -Wl,-soname,$(SONAME)
CFLAGS=-c -g #uncomment for debuging with gdb
HEADERS:=$(wildcard $(IDIR)/*.h)
HDRS=$(patsubst $(IDIR)/%.h, $(HDRINSTALLDIR)/%.h, $(HEADERS))
SRCS=*.c
SRCDIR=src
SRC:=$(wildcard $(SRCDIR)/$(SRCS))
TSRCS=tst2.c
TSRCDIR=tst
TSRC=$(patsubst %.c, $(TSRCDIR)/%.c, $(TSRCS))
TOBJ := $(patsubst $(TSRCDIR)/%.c, $(TSRCDIR)/%.o, $(TSRC))
OBJDIR=obj
OBJ := $(patsubst $(SRCDIR)/%.c, $(OBJDIR)/%.o, $(SRC))
.PHONY: setup clean pkg
all: setup $(OBJ) $(BINDIR)
$(CC) $(LFLAGS) $(SHRDFLAGS) $(OBJ) -o $(LIBDIR)/$(OUTNAME)
pkg:
mkdir -p $(PKGNAME)
cp -r $(PKGLIST) $(PKGNAME)
tar -vc -f $(PKGNAME).tar $(PKGNAME)
gzip $(PKGNAME).tar
rm -r $(PKGNAME)
md5sum $(PKGNAME).tar.gz >> md5.txt
mv $(PKGNAME).tar.gz $(PKGDIR)
testing: setup $(TOBJ) $(OBJ)
$(CC) $(LFLAGS) $(TOBJ) $(OBJ) -o $(TSRCDIR)/tst
setup:
mkdir -p $(LIBDIR)
mkdir -p $(OBJDIR)
clean:
rm -rf $(OBJDIR)
reinstall: uninstall install clean
install: all clean
mkdir -p $(HDRINSTALLDIR)
mkdir -p $(INSTALLDIR)
install $(HEADERS) -t $(HDRINSTALLDIR)
install $(LIBDIR)/$(OUTNAME) -t $(INSTALLDIR)
ldconfig -n $(INSTALLDIR)
uninstall:
rm -I $(INSTALLDIR)/$(SONAME)*
rm -I $(HDRS)
$(TSRCDIR)/%.o: $(TSRCDIR)/%.c
$(CC) $(LFLAGS) $(CFLAGS) $< -o $@
$(OBJDIR)/%.o: $(SRCDIR)/%.c
$(CC) $(LFLAGS) $(CFLAGS) $< -o $@