diff --git a/Makefile b/Makefile index b2cc03c..aff5fa1 100644 --- a/Makefile +++ b/Makefile @@ -10,7 +10,10 @@ CFLAGS=-pthread -O3 $(DEBUGFLAGS) RTFLAGS=-lrt -SOURCES=alarm.c alarm_cond.c alarm_fork.c alarm_mutex.c \ +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 \ @@ -23,32 +26,60 @@ SOURCES=alarm.c alarm_cond.c alarm_fork.c alarm_mutex.c \ sigwait.c susp.c thread.c \ thread_attr.c thread_error.c trylock.c tsd_destructor.c \ tsd_once.c workq_main.c -PROGRAMS=$(SOURCES:.c=) -all: ${PROGRAMS} -alarm_mutex: - ${CC} ${CFLAGS} ${RTFLAGS} ${LDFLAGS} -o $@ alarm_mutex.c -backoff: - ${CC} ${CFLAGS} ${RTFLAGS} ${LDFLAGS} -o $@ backoff.c -sched_attr: - ${CC} ${CFLAGS} ${RTFLAGS} ${LDFLAGS} -o $@ sched_attr.c -sched_thread: - ${CC} ${CFLAGS} ${RTFLAGS} ${LDFLAGS} -o $@ sched_thread.c -semaphore_signal: - ${CC} ${CFLAGS} ${RTFLAGS} ${LDFLAGS} -o $@ semaphore_signal.c -semaphore_wait: - ${CC} ${CFLAGS} ${RTFLAGS} ${LDFLAGS} -o $@ semaphore_wait.c -sigev_thread: - ${CC} ${CFLAGS} ${RTFLAGS} ${LDFLAGS} -o $@ sigev_thread.c -susp: - ${CC} ${CFLAGS} ${RTFLAGS} ${LDFLAGS} -o $@ susp.c -rwlock_main: rwlock.c rwlock.h rwlock_main.c - ${CC} ${CFLAGS} ${LDFLAGS} -o $@ rwlock_main.c rwlock.c -rwlock_try_main: rwlock.h rwlock.c rwlock_try_main.c - ${CC} ${CFLAGS} ${LDFLAGS} -o $@ rwlock_try_main.c rwlock.c -barrier_main: barrier.h barrier.c barrier_main.c - ${CC} ${CFLAGS} ${LDFLAGS} -o $@ barrier_main.c barrier.c -workq_main: workq.h workq.c workq_main.c - ${CC} ${CFLAGS} ${RTFLAGS} ${LDFLAGS} -o $@ workq_main.c workq.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) *.o + @rm -rf $(PROGRAMS_C) ${PROGRAMS_CXX} *.o + recompile: clean all diff --git a/bin/.gitignore b/bin/.gitignore new file mode 100644 index 0000000..f59ec20 --- /dev/null +++ b/bin/.gitignore @@ -0,0 +1 @@ +* \ No newline at end of file diff --git a/alarm.c b/src/alarm.c similarity index 100% rename from alarm.c rename to src/alarm.c diff --git a/alarm_cond.c b/src/alarm_cond.c similarity index 100% rename from alarm_cond.c rename to src/alarm_cond.c diff --git a/alarm_fork.c b/src/alarm_fork.c similarity index 100% rename from alarm_fork.c rename to src/alarm_fork.c diff --git a/alarm_mutex.c b/src/alarm_mutex.c similarity index 100% rename from alarm_mutex.c rename to src/alarm_mutex.c diff --git a/alarm_mutex.cpp b/src/alarm_mutex.cpp similarity index 100% rename from alarm_mutex.cpp rename to src/alarm_mutex.cpp diff --git a/alarm_thread.c b/src/alarm_thread.c similarity index 100% rename from alarm_thread.c rename to src/alarm_thread.c diff --git a/atfork.c b/src/atfork.c similarity index 100% rename from atfork.c rename to src/atfork.c diff --git a/backoff.c b/src/backoff.c similarity index 100% rename from backoff.c rename to src/backoff.c diff --git a/barrier.c b/src/barrier.c similarity index 100% rename from barrier.c rename to src/barrier.c diff --git a/barrier.h b/src/barrier.h similarity index 100% rename from barrier.h rename to src/barrier.h diff --git a/barrier_main.c b/src/barrier_main.c similarity index 100% rename from barrier_main.c rename to src/barrier_main.c diff --git a/cancel.c b/src/cancel.c similarity index 100% rename from cancel.c rename to src/cancel.c diff --git a/cancel_async.c b/src/cancel_async.c similarity index 100% rename from cancel_async.c rename to src/cancel_async.c diff --git a/cancel_cleanup.c b/src/cancel_cleanup.c similarity index 100% rename from cancel_cleanup.c rename to src/cancel_cleanup.c diff --git a/cancel_disable.c b/src/cancel_disable.c similarity index 100% rename from cancel_disable.c rename to src/cancel_disable.c diff --git a/cancel_subcontract.c b/src/cancel_subcontract.c similarity index 100% rename from cancel_subcontract.c rename to src/cancel_subcontract.c diff --git a/cond.c b/src/cond.c similarity index 100% rename from cond.c rename to src/cond.c diff --git a/cond_attr.c b/src/cond_attr.c similarity index 100% rename from cond_attr.c rename to src/cond_attr.c diff --git a/cond_dynamic.c b/src/cond_dynamic.c similarity index 100% rename from cond_dynamic.c rename to src/cond_dynamic.c diff --git a/cond_static.c b/src/cond_static.c similarity index 100% rename from cond_static.c rename to src/cond_static.c diff --git a/crew.c b/src/crew.c similarity index 100% rename from crew.c rename to src/crew.c diff --git a/errors.h b/src/errors.h similarity index 100% rename from errors.h rename to src/errors.h diff --git a/flock.c b/src/flock.c similarity index 100% rename from flock.c rename to src/flock.c diff --git a/getlogin.c b/src/getlogin.c similarity index 100% rename from getlogin.c rename to src/getlogin.c diff --git a/hello.c b/src/hello.c similarity index 100% rename from hello.c rename to src/hello.c diff --git a/inertia.c b/src/inertia.c similarity index 100% rename from inertia.c rename to src/inertia.c diff --git a/lifecycle.c b/src/lifecycle.c similarity index 100% rename from lifecycle.c rename to src/lifecycle.c diff --git a/mutex_attr.c b/src/mutex_attr.c similarity index 100% rename from mutex_attr.c rename to src/mutex_attr.c diff --git a/mutex_dynamic.c b/src/mutex_dynamic.c similarity index 100% rename from mutex_dynamic.c rename to src/mutex_dynamic.c diff --git a/mutex_static.c b/src/mutex_static.c similarity index 100% rename from mutex_static.c rename to src/mutex_static.c diff --git a/once.c b/src/once.c similarity index 100% rename from once.c rename to src/once.c diff --git a/pipe.c b/src/pipe.c similarity index 100% rename from pipe.c rename to src/pipe.c diff --git a/pipe.cpp b/src/pipe.cpp similarity index 100% rename from pipe.cpp rename to src/pipe.cpp diff --git a/putchar.c b/src/putchar.c similarity index 100% rename from putchar.c rename to src/putchar.c diff --git a/rwlock.c b/src/rwlock.c similarity index 100% rename from rwlock.c rename to src/rwlock.c diff --git a/rwlock.h b/src/rwlock.h similarity index 100% rename from rwlock.h rename to src/rwlock.h diff --git a/rwlock_main.c b/src/rwlock_main.c similarity index 100% rename from rwlock_main.c rename to src/rwlock_main.c diff --git a/rwlock_try_main.c b/src/rwlock_try_main.c similarity index 100% rename from rwlock_try_main.c rename to src/rwlock_try_main.c diff --git a/sched_attr.c b/src/sched_attr.c similarity index 100% rename from sched_attr.c rename to src/sched_attr.c diff --git a/sched_thread.c b/src/sched_thread.c similarity index 100% rename from sched_thread.c rename to src/sched_thread.c diff --git a/semaphore_signal.c b/src/semaphore_signal.c similarity index 100% rename from semaphore_signal.c rename to src/semaphore_signal.c diff --git a/semaphore_wait.c b/src/semaphore_wait.c similarity index 100% rename from semaphore_wait.c rename to src/semaphore_wait.c diff --git a/server.c b/src/server.c similarity index 100% rename from server.c rename to src/server.c diff --git a/sigev_thread.c b/src/sigev_thread.c similarity index 100% rename from sigev_thread.c rename to src/sigev_thread.c diff --git a/sigwait.c b/src/sigwait.c similarity index 100% rename from sigwait.c rename to src/sigwait.c diff --git a/susp.c b/src/susp.c similarity index 100% rename from susp.c rename to src/susp.c diff --git a/thread.c b/src/thread.c similarity index 100% rename from thread.c rename to src/thread.c diff --git a/thread_attr.c b/src/thread_attr.c similarity index 100% rename from thread_attr.c rename to src/thread_attr.c diff --git a/thread_error.c b/src/thread_error.c similarity index 100% rename from thread_error.c rename to src/thread_error.c diff --git a/trylock.c b/src/trylock.c similarity index 100% rename from trylock.c rename to src/trylock.c diff --git a/tsd_destructor.c b/src/tsd_destructor.c similarity index 100% rename from tsd_destructor.c rename to src/tsd_destructor.c diff --git a/tsd_once.c b/src/tsd_once.c similarity index 100% rename from tsd_once.c rename to src/tsd_once.c diff --git a/workq.c b/src/workq.c similarity index 100% rename from workq.c rename to src/workq.c diff --git a/workq.h b/src/workq.h similarity index 100% rename from workq.h rename to src/workq.h diff --git a/workq_main.c b/src/workq_main.c similarity index 100% rename from workq_main.c rename to src/workq_main.c