From efc292af2cacdc3ad5aa6fcdc33d87e12bd082bf Mon Sep 17 00:00:00 2001 From: Igor Socec Date: Wed, 11 Jan 2017 17:30:13 +0100 Subject: [PATCH] Improve source tree --- .gitignore | 6 +-- Makefile | 52 +++++++++------------- moxanix.cfg => moxanix/moxanix.cfg | 0 moxanix.sh => moxanix/moxanix.sh | 0 moxerver/Makefile | 54 +++++++++++++++++++++++ client.c => moxerver/client.c | 0 client.h => moxerver/client.h | 0 common.h => moxerver/common.h | 0 moxerver.c => moxerver/moxerver.c | 0 server.c => moxerver/server.c | 0 server.h => moxerver/server.h | 0 task_threads.c => moxerver/task_threads.c | 0 task_threads.h => moxerver/task_threads.h | 0 telnet.c => moxerver/telnet.c | 0 telnet.h => moxerver/telnet.h | 0 tty.c => moxerver/tty.c | 0 tty.h => moxerver/tty.h | 0 17 files changed, 77 insertions(+), 35 deletions(-) rename moxanix.cfg => moxanix/moxanix.cfg (100%) rename moxanix.sh => moxanix/moxanix.sh (100%) create mode 100644 moxerver/Makefile rename client.c => moxerver/client.c (100%) rename client.h => moxerver/client.h (100%) rename common.h => moxerver/common.h (100%) rename moxerver.c => moxerver/moxerver.c (100%) rename server.c => moxerver/server.c (100%) rename server.h => moxerver/server.h (100%) rename task_threads.c => moxerver/task_threads.c (100%) rename task_threads.h => moxerver/task_threads.h (100%) rename telnet.c => moxerver/telnet.c (100%) rename telnet.h => moxerver/telnet.h (100%) rename tty.c => moxerver/tty.c (100%) rename tty.h => moxerver/tty.h (100%) diff --git a/.gitignore b/.gitignore index 709140d..93bbd66 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,6 @@ -# executables -moxerver - -# object files +# object files/output directories *.o +*.dir # logs directory during development logs diff --git a/Makefile b/Makefile index fa9aaef..5cf4626 100644 --- a/Makefile +++ b/Makefile @@ -1,43 +1,33 @@ -# target name -TARGET = moxerver +# components +MOXERVER = moxerver +MOXANIX = moxanix -# special include directories -INCDIRS = -I. -# special library directories -LIBDIRS = -L. -# used libraries -#LIBS = -lm -LIBS = -lpthread +# installation root +INSTALL_ROOT = ./install.dir -# compiler and flags -CC = gcc -CFLAGS = -Wall $(INCDIRS) $(LIBDIRS) $(LIBS) +# ============================================================================== -# objects are .o files created from all .c files in the directory (same name) -OBJECTS = $(patsubst %.c,%.o,$(wildcard *.c)) -# headers are all .h files in the directory -HEADERS = $(wildcard *.h) +MOXERVER_BUILDDIR = build.dir -# all objects are built from their .c files and all headers in the directory -%.o: %.c $(HEADERS) - $(CC) $(CFLAGS) -c $< -o $@ +# ============================================================================== -# target is built from all object files -$(TARGET): $(OBJECTS) - $(CC) $(OBJECTS) $(CFLAGS) -o $@ - - -# support for default, clean and all options +# supported make options (clean, install...) .PHONY: default all clean # all calls all other options all: default -# default builds target -default: $(TARGET) +# default builds moxerver +default: + cd $(MOXERVER) && make OUTDIR=$(MOXERVER_BUILDDIR) -# clean removed object files and target +# install handles moxerver and moxanix installation +install: default + mkdir -p $(INSTALL_ROOT) + cp $(MOXERVER)/$(MOXERVER_BUILDDIR)/$(MOXERVER) $(INSTALL_ROOT)/$(MOXERVER) + cp $(MOXANIX)/$(MOXANIX).* $(INSTALL_ROOT)/ + +# clean removes build and install results clean: - -rm -f *.o - -rm -f $(TARGET) - + cd $(MOXERVER) && make clean + -rm -rf $(INSTALL_ROOT) diff --git a/moxanix.cfg b/moxanix/moxanix.cfg similarity index 100% rename from moxanix.cfg rename to moxanix/moxanix.cfg diff --git a/moxanix.sh b/moxanix/moxanix.sh similarity index 100% rename from moxanix.sh rename to moxanix/moxanix.sh diff --git a/moxerver/Makefile b/moxerver/Makefile new file mode 100644 index 0000000..c798acb --- /dev/null +++ b/moxerver/Makefile @@ -0,0 +1,54 @@ +# target name +TARGET = moxerver + +# directory for build results +BUILDDIR = build.dir + +# ============================================================================== + +# add include directories +INCDIRS = -I. +# add library directories +LIBDIRS = -L. +# list used libraries +#LIBS = -lm +LIBS = -lpthread + +# ============================================================================== + +# compiler and flags +CC = gcc +CFLAGS = -Wall $(INCDIRS) $(LIBDIRS) $(LIBS) + +# ============================================================================== + +# build everything in a dedicated directory $(OUTDIR) + +# objects are .o files created from all .c files in the directory (same name) +OBJECTS = $(patsubst %.c, $(BUILDDIR)/%.o, $(wildcard *.c)) +# headers are all .h files in the directory +HEADERS = $(wildcard *.h) + +# all objects are built from their .c files in the directory +$(BUILDDIR)/%.o: %.c + mkdir -p $(BUILDDIR) + $(CC) $(CFLAGS) -c $< -o $@ + +# target is built from all object files +$(BUILDDIR)/$(TARGET): $(OBJECTS) + $(CC) $(OBJECTS) $(CFLAGS) -o $@ + +# ============================================================================== + +# supported make options (clean, install...) +.PHONY: default all clean + +# all calls all other options +all: default + +# default builds target +default: $(BUILDDIR)/$(TARGET) + +# clean removes object files and target (ignore errors with "-" before commands) +clean: + -rm -rf $(BUILDDIR) diff --git a/client.c b/moxerver/client.c similarity index 100% rename from client.c rename to moxerver/client.c diff --git a/client.h b/moxerver/client.h similarity index 100% rename from client.h rename to moxerver/client.h diff --git a/common.h b/moxerver/common.h similarity index 100% rename from common.h rename to moxerver/common.h diff --git a/moxerver.c b/moxerver/moxerver.c similarity index 100% rename from moxerver.c rename to moxerver/moxerver.c diff --git a/server.c b/moxerver/server.c similarity index 100% rename from server.c rename to moxerver/server.c diff --git a/server.h b/moxerver/server.h similarity index 100% rename from server.h rename to moxerver/server.h diff --git a/task_threads.c b/moxerver/task_threads.c similarity index 100% rename from task_threads.c rename to moxerver/task_threads.c diff --git a/task_threads.h b/moxerver/task_threads.h similarity index 100% rename from task_threads.h rename to moxerver/task_threads.h diff --git a/telnet.c b/moxerver/telnet.c similarity index 100% rename from telnet.c rename to moxerver/telnet.c diff --git a/telnet.h b/moxerver/telnet.h similarity index 100% rename from telnet.h rename to moxerver/telnet.h diff --git a/tty.c b/moxerver/tty.c similarity index 100% rename from tty.c rename to moxerver/tty.c diff --git a/tty.h b/moxerver/tty.h similarity index 100% rename from tty.h rename to moxerver/tty.h