Files
Programming-POSIX-Threads/Makefile
Bassem Girgis 6ba9180a62 reorganize
2018-10-17 11:57:18 -05:00

86 lines
2.8 KiB
Makefile

# Digital UNIX 4.0 compilation flags:
#CFLAGS=-std1 -pthread -g -w1 $(DEBUGFLAGS)
#RTFLAGS=-lrt
# Solaris 2.5 compilation flags:
#CFLAGS=-D_POSIX_C_SOURCE=199506 -D_REENTRANT -Xa -lpthread -g $(DEBUGFLAGS)
#RTFLAGS=-lposix4
# Linux compilation flags:
CFLAGS=-pthread -O3 $(DEBUGFLAGS)
RTFLAGS=-lrt
BIN=./bin
SOURCE=./src
SOURCES_C=alarm.c alarm_cond.c alarm_fork.c alarm_mutex.c \
alarm_thread.c atfork.c backoff.c \
barrier_main.c cancel.c cancel_async.c cancel_cleanup\
cancel_disable.c cancel_subcontract.c cond.c cond_attr.c \
crew.c cond_dynamic.c cond_static.c flock.c getlogin.c hello.c \
inertia.c lifecycle.c mutex_attr.c \
mutex_dynamic.c mutex_static.c once.c pipe.c putchar.c \
rwlock_main.c rwlock_try_main.c \
sched_attr.c sched_thread.c semaphore_signal.c \
semaphore_wait.c server.c sigev_thread.c \
sigwait.c susp.c thread.c \
thread_attr.c thread_error.c trylock.c tsd_destructor.c \
tsd_once.c workq_main.c
NAMES_C=$(SOURCES_C:.c=)
PROGRAMS_C=$(addprefix $(BIN)/c_, $(NAMES_C))
SOURCES_CXX=alarm_mutex.cpp pipe.cpp
NAMES_CXX=$(SOURCES_CXX:.cpp=)
PROGRAMS_CXX=$(addprefix $(BIN)/cpp_, $(NAMES_CXX))
all: ${PROGRAMS_C} ${PROGRAMS_CXX}
$(BIN)/c_%: $(SOURCE)/%.c
$(CC) $(INC) $< $(CFLAGS) -o $@ $(LIBS)
$(BIN)/c_alarm_mutex: $(SOURCE)/alarm_mutex.c
$(CC) $(INC) $< $(CFLAGS) ${RTFLAGS} -o $@ $(LIBS)
$(BIN)/c_backoff: $(SOURCE)/backoff.c
$(CC) $(INC) $< $(CFLAGS) ${RTFLAGS} -o $@ $(LIBS)
$(BIN)/c_sched_attr: $(SOURCE)/sched_attr.c
$(CC) $(INC) $< $(CFLAGS) ${RTFLAGS} -o $@ $(LIBS)
$(BIN)/c_sched_thread: $(SOURCE)/sched_thread.c
$(CC) $(INC) $< $(CFLAGS) ${RTFLAGS} -o $@ $(LIBS)
$(BIN)/c_semaphore_signal: $(SOURCE)/semaphore_signal.c
$(CC) $(INC) $< $(CFLAGS) ${RTFLAGS} -o $@ $(LIBS)
$(BIN)/c_semaphore_wait: $(SOURCE)/semaphore_wait.c
$(CC) $(INC) $< $(CFLAGS) ${RTFLAGS} -o $@ $(LIBS)
$(BIN)/c_sigev_thread: $(SOURCE)/sigev_thread.c
$(CC) $(INC) $< $(CFLAGS) ${RTFLAGS} -o $@ $(LIBS)
$(BIN)/c_susp:
${CC} ${CFLAGS} ${RTFLAGS} ${LDFLAGS} -o $@ $(SOURCE)/susp.c
$(BIN)/c_rwlock_main: $(SOURCE)/rwlock.c $(SOURCE)/rwlock.h $(SOURCE)/rwlock_main.c
${CC} ${CFLAGS} ${LDFLAGS} -o $@ $(SOURCE)/rwlock_main.c $(SOURCE)/rwlock.c
$(BIN)/c_rwlock_try_main: $(SOURCE)/rwlock.h $(SOURCE)/rwlock.c $(SOURCE)/rwlock_try_main.c
${CC} ${CFLAGS} ${LDFLAGS} -o $@ $(SOURCE)/rwlock_try_main.c $(SOURCE)/rwlock.c
$(BIN)/c_barrier_main: $(SOURCE)/barrier.h $(SOURCE)/barrier.c $(SOURCE)/barrier_main.c
${CC} ${CFLAGS} ${LDFLAGS} -o $@ $(SOURCE)/barrier_main.c $(SOURCE)/barrier.c
$(BIN)/c_workq_main: $(SOURCE)/workq.h $(SOURCE)/workq.c $(SOURCE)/workq_main.c
${CC} ${CFLAGS} ${RTFLAGS} ${LDFLAGS} -o $@ $(SOURCE)/workq_main.c $(SOURCE)/workq.c
$(BIN)/cpp_%: $(SOURCE)/%.cpp
$(CXX) $(INC) $< $(CFLAGS) -o $@ $(LIBS)
clean:
@rm -rf $(PROGRAMS_C) ${PROGRAMS_CXX} *.o
recompile: clean all