From a305a931726bc13c604afca1209a656a8fbedc46 Mon Sep 17 00:00:00 2001 From: Franklin Wei Date: Sat, 16 Apr 2016 21:16:44 -0400 Subject: allow for modular world loading --- Makefile | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index 3b59ad4..5214414 100644 --- a/Makefile +++ b/Makefile @@ -27,19 +27,22 @@ PLATFORM = unix OUT = $(BUILDDIR)/$(PLATFORM).bin PREFIX = /usr/local -SRC = $(shell cat SOURCES) -OBJ = $(patsubst %.c,$(BUILDDIR)/%.o,$(SRC)) +SRC = $(shell cat src/SOURCES) +OBJ = $(patsubst %.c,$(BUILDDIR)/src/%.o,$(SRC)) + +WORLD_SRC = $(shell cat worlds/SOURCES) +WORLD_OBJ = $(patsubst %.c,$(BUILDDIR)/worlds/%.so,$(WORLD_SRC)) INCLUDES = -I src/ -I export/include/ WARNFLAGS = -Wall -Wextra -Wshadow -fno-strict-aliasing OPTFLAGS = -O2 -DEBUGFLAGS = -g -fstack-protector -D_FORTIFY_SOURCE=2 +DEBUGFLAGS = -g -fstack-protector CFLAGS = $(OPTFLAGS) $(DEBUGFLAGS) $(WARNFLAGS) -std=c99 $(INCLUDES) -LDFLAGS = -lev -lcrypto +LDFLAGS = -lev -lcrypto -ldl HEADERS = src/*.h export/include/*.h @@ -49,11 +52,11 @@ DEPS = $(patsubst %.c,$(BUILDDIR)/%.d,$(SRC)) ################################################################################ .PHONY: all -all: | $(OUT) +all: | $(OUT) $(WORLD_OBJ) $(OUT): $(OBJ) @echo "LD $@" - @$(CC) $(OBJ) $(CFLAGS) -o $@ $(LDFLAGS) + @$(CC) $(OBJ) $(CFLAGS) -o $@ $(LDFLAGS) -rdynamic $(OBJ): | $(BUILDDIR) @@ -65,6 +68,11 @@ $(BUILDDIR)/%.o: %.c $(BUILDDIR)/%.d Makefile @mkdir -p `dirname $@` @$(CC) -c $< $(CFLAGS) -o $@ +$(BUILDDIR)/%.so: %.c $(BUILDDIR)/%.d Makefile + @echo "CC $<" + @mkdir -p `dirname $@` + @$(CC) $< $(CFLAGS) -shared -o $@ -D_WORLD_MODULE_ -fPIC + # Dependencies ################################################################################ @@ -86,7 +94,7 @@ setcap: .PHONY: clean clean: @echo "Cleaning build directory..." - @rm -f $(OBJ) $(OUT) + @rm -f $(OBJ) $(OUT) $(WORLD_OBJ) .PHONY: veryclean veryclean: -- cgit v1.1