Usermode - Changed build system to separate different arch builds
authorJohn Hodge <[email protected]>
Thu, 24 Mar 2011 02:31:13 +0000 (10:31 +0800)
committerJohn Hodge <[email protected]>
Thu, 24 Mar 2011 02:31:13 +0000 (10:31 +0800)
- Now all object files are put in a directory for each architecture
 > e.g. 'obj-i386/main.o'
- Fixed a compile error in telnet

Usermode/Applications/Makefile.tpl
Usermode/Applications/telnet_src/main.c
Usermode/Libraries/Makefile.cfg
Usermode/Libraries/Makefile.tpl

index 9dc9787..f16ae11 100644 (file)
@@ -6,9 +6,12 @@
 CFLAGS  += -Wall -Werror -fno-builtin -fno-stack-protector -g
 LDFLAGS += 
 
-DEPFILES := $(OBJ:%.o=%.d)
-
 _BIN := $(OUTPUTDIR)$(DIR)/$(BIN)
+_OBJPREFIX := obj-$(ARCH)/
+
+OBJ := $(addprefix $(_OBJPREFIX),$(OBJ))
+
+DEPFILES := $(OBJ:%.o=%.dep)
 
 .PHONY : all clean install
 
@@ -31,9 +34,12 @@ else
 endif
        @objdump -d -S $(_BIN) > $(BIN).dsm
 
-$(OBJ): %.o: %.c
+$(OBJ): $(_OBJPREFIX)%.o: %.c
        @echo --- GCC -o $@
+ifneq ($(_OBJPREFIX),)
+       @mkdir -p $(_OBJPREFIX)
+endif
        @$(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@
-       @$(CC) -M -MT $@ $(CPPFLAGS) $< -o $*.d
+       @$(CC) -M -MT $@ $(CPPFLAGS) $< -o $(_OBJPREFIX)$*.dep
 
 -include $(DEPFILES)
index 519978d..d1f8d17 100644 (file)
@@ -100,7 +100,6 @@ int main(int argc, char *argv[], char *envp[])
 int OpenTCP(const char *AddressString, short PortNumber)\r
 {\r
         int    fd, addrType;\r
-       char    *iface;\r
        uint8_t addrBuffer[16];\r
        \r
        // Parse IP Address\r
index 9b1dd91..430d98d 100644 (file)
@@ -5,7 +5,7 @@
 
 MAKEDEP  = $(CC) -M
 
-ASFLAGS  := -felf
-CPPFLAGS := -I$(ACESSDIR)/Usermode/include/
+ASFLAGS  := -felf -D ARCHDIR=$(ARCHDIR)
+CPPFLAGS := -I$(ACESSDIR)/Usermode/include/ -D ARCHDIR=$(ARCHDIR) -D ARCHDIR_IS_$(ARCHDIR)=1
 CFLAGS   := -g -Wall -fPIC -fno-builtin -fno-stack-protector $(CPPFLAGS)
 LDFLAGS  := -g -nostdlib -shared -I/Acess/Libs/ld-acess.so -e SoMain -x -L$(OUTPUTDIR)Libs/
index ccae9ca..e7dd73c 100644 (file)
@@ -2,10 +2,14 @@
 # - Library Common Makefile
 #
 
-DEPFILES := $(addsuffix .d,$(OBJ))
 
 _BIN := $(OUTPUTDIR)Libs/$(BIN)
 _XBIN := $(addprefix $(OUTPUTDIR)Libs/,$(EXTRABIN))
+_OBJPREFIX := obj-$(ARCH)/
+
+OBJ := $(addprefix $(_OBJPREFIX),$(OBJ))
+
+DEPFILES := $(addsuffix .dep,$(OBJ))
 
 .PHONY: all clean install postbuild
 
@@ -24,14 +28,16 @@ $(_BIN): $(OBJ)
        @$(LD) $(LDFLAGS) -o $(_BIN) $(OBJ)
        @$(OBJDUMP) -d -S $(_BIN) > $(_BIN).dsm
 
-%.o: %.c
+$(_OBJPREFIX)%.o: %.c
        @echo [CC] -o $@
+       @mkdir -p $(dir $@)
        @$(CC) $(CFLAGS) -o $@ -c $<
-       @$(CC) -M -MT $@ $(CPPFLAGS) $< -o [email protected]
+       @$(CC) -M -MT $@ $(CPPFLAGS) $< -o [email protected]ep
 
-%.ao: %.asm
+$(_OBJPREFIX)%.ao: %.asm
        @echo [AS] -o $@
+       @mkdir -p $(dir $@)
        @$(AS) $(ASFLAGS) -o $@ $<
-       @$(AS) $(ASFLAGS) -o $@ $< -M > [email protected]
+       @$(AS) $(ASFLAGS) -o $@ $< -M > [email protected]ep
 
 -include $(DEPFILES)

UCC git Repository :: git.ucc.asn.au