Makefile
1.27 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
MODULE = jthread
EXE = lib$(MODULE).so
AR = ar
CC = g++
JAVA = javac
DOXYGEN = doxygen
TARGET_ARCH = linux
INCDIR = ./include
LIBDIR = ./lib
SRCDIR = ./src
BINDIR = ./bin
TESTDIR = ./tests
DOCDIR = ./doc
OPT = -fomit-frame-pointer -funroll-loops -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -O2
DEBUG = -ggdb
OTHER = -Wall -pthread -static -shared -ansi
INCLUDE = -I. -I$(INCDIR)
LIBRARY = -L. -L$(LIBDIR) -lpthread
STD = _GNU_SOURCE
ARFLAGS = -rc
CCFLAGS = $(INCLUDE) $(DEBUG) $(OPT) $(OTHER) -D$(STD)
OK = \033[30;32mOK\033[m
OBJS = \
jcondition.o\
jmutex.o\
jsemaphore.o\
jthread.o\
jthreadexception.o\
jsemaphoreexception.o\
jmutexexception.o\
jautolock.o\
jthreadlib.o\
all: $(EXE)
$(EXE): $(OBJS)
@$(AR) $(ARFLAGS) $(EXE) $(OBJS)
@mkdir -p $(BINDIR) $(LIBDIR) && mv $(EXE) $(LIBDIR)
.cpp.o: $<
@$(CC) $(CCFLAGS) $(OPT) -c $< ; echo -e "Compiling $< ... $(OK)"
tests:
@cd $(TESTDIR) && make && cd .. && echo -e "Compiling $< ... $(OK)"
doc:
@mkdir -p $(DOCDIR)
install:
clean:
@cd tests && make clean && cd ..
@rm -rf *.o *~ $(EXE) $(BINDIR) $(LIBDIR) $(DOCDIR) 2> /dev/null && echo -e "$(MODULE) clean $(OK)"