PLATFORM := lin
endif
-OBJ := syscalls.$(PLATFORM).o request.$(PLATFORM).o
+OBJ := main.o syscalls.o request.o memory.o exports.o
+OBJ := $(addprefix obj-$(PLATFORM)/,$(OBJ))
ifeq ($(PLATFORM),win)
- BIN := ../libacess.dll
+ BIN := ../ld-acess.dll
+ LDFLAGS += -lws2_32
endif
ifeq ($(PLATFORM),lin)
- BIN := ../libacess.so
- CFLAGS += -fPIC
+ BIN := ../ld-acess.so
endif
+CFLAGS += -Wall
+CFLAGS += -Werror
+CFLAGS += -g -shared -fPIC
+CPPFLAGS += -DARCHDIR_is_x86_64=1
+LDFLAGS += -g -shared -Wl,--no-undefined
+
+DEPFILES = $(filter %.o,$(OBJ))
+DEPFILES := $(DEPFILES:%=%.dep)
.PHONY: all clean
all: $(BIN)
clean:
- $(RM) $(BIN) $(OBJ)
+ $(RM) $(BIN) $(OBJ) $(DEPFILES)
$(BIN): $(OBJ)
- $(CC) -shared -o $@ $<
+ $(CC) -o $@ $(OBJ) $(LDFLAGS)
+
+obj-$(PLATFORM)/%.o: %.c
+ @mkdir -p $(dir $@)
+ @echo [CC] -o $@
+ @$(CC) -c $< -o $@ $(CFLAGS) $(CPPFLAGS)
-%.$(PLATFORM).o: %.c
- $(CC) -c $< -o $@ $(CFLAGS) $(CPPFLAGS)
+-include $(DEPFILES)