Makefile 1.27 KB
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)"