From 5ae6d78486741865bd5051b0cba63d6138141702 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=B6rg=20Pf=C3=A4hler?= Date: Fri, 3 Jul 2009 21:56:51 +0200 Subject: [PATCH] * Makefiles: use gcc to generate the dependency files instead of makedepend --- .gitignore | 2 +- Makefile | 47 +++--- apps/Makefile | 110 ++++++-------- kernel/Makefile | 27 ++-- lib/curses++/Makefile | 22 ++- lib/libc++/Makefile | 30 ++-- lib/libc/Makefile | 39 +++-- lib/libc/libOS/lightOS/Makefile | 60 ++++---- lib/lightOS++/Makefile | 22 ++- lib/lightOS/Makefile | 29 ++-- scripts/clean.sh | 18 +-- server/Makefile | 308 ++++++++++++++++++++-------------------- 12 files changed, 336 insertions(+), 378 deletions(-) rewrite apps/Makefile (70%) rewrite lib/libc/libOS/lightOS/Makefile (62%) rewrite server/Makefile (60%) diff --git a/.gitignore b/.gitignore index 82b10f0..36b16de 100644 --- a/.gitignore +++ b/.gitignore @@ -66,7 +66,7 @@ libarch/include/libarch/x86_64/ioport.h libkernel/include/libkernel/arch # Dependency files -*lightOS.depend +*.dep # Build directory build/* diff --git a/Makefile b/Makefile index 439e41b..baa5b20 100644 --- a/Makefile +++ b/Makefile @@ -15,33 +15,34 @@ doc: @doxygen config/Doxyfile.libc install-headers: - @make -C libarch install-headers - @make -C libkernel install-headers - @make -C libserver install-headers - @make -C lib/libc install-headers - @make -C lib/libc++ install-headers - @make -C lib/lightOS++ install-headers - @make -C lib/curses++ install-headers + @make --no-print-directory -C libarch install-headers + @make --no-print-directory -C libkernel install-headers + @make --no-print-directory -C libserver install-headers + @make --no-print-directory -C lib/libc install-headers + @make --no-print-directory -C lib/libc++ install-headers + @make --no-print-directory -C lib/lightOS++ install-headers + @make --no-print-directory -C lib/curses++ install-headers uninstall-headers: - @make -C lib/curses++ uninstall-headers - @make -C lib/lightOS++ uninstall-headers - @make -C lib/libc++ uninstall-headers - @make -C lib/libc uninstall-headers - @make -C libserver uninstall-headers - @make -C libkernel uninstall-headers - @make -C libarch uninstall-headers + @make --no-print-directory -C lib/curses++ uninstall-headers + @make --no-print-directory -C lib/lightOS++ uninstall-headers + @make --no-print-directory -C lib/libc++ uninstall-headers + @make --no-print-directory -C lib/libc uninstall-headers + @make --no-print-directory -C libserver uninstall-headers + @make --no-print-directory -C libkernel uninstall-headers + @make --no-print-directory -C libarch uninstall-headers all: install-headers - @make -C lib/lightOS all - @make -C lib/libc all - @make -C lib/lightOS++ all - @make -C lib/libc++ all - @make -C lib/curses++ all - @make -C lib/ports all - @make -C kernel all - @make -C server all - @make -C apps all + @make --no-print-directory -C lib/lightOS all + @make --no-print-directory -C lib/libc/libOS/this all + @make --no-print-directory -C lib/libc all + @make --no-print-directory -C lib/lightOS++ all + @make --no-print-directory -C lib/libc++ all + @make --no-print-directory -C lib/curses++ all + @make --no-print-directory -C lib/ports all + @make --no-print-directory -C kernel all + @make --no-print-directory -C server all + @make --no-print-directory -C apps all image: @cd build && ./image.sh $(ARCH) diff --git a/apps/Makefile b/apps/Makefile dissimilarity index 70% index 07c8652..f3d1d61 100644 --- a/apps/Makefile +++ b/apps/Makefile @@ -1,64 +1,46 @@ -############################################################################### -######### lightOS Makfile ########## -############################################################################### -### NOTE: NOT IN V0.2: cpptest.cpp -include ../Makefile.config -include ../Makefile.rules - -.PHONY : $(PORTED_APPS) - -### gzip.cpp bzip2.cpp -SRC= help.cpp mem.cpp pwd.cpp server.cpp lslib.cpp dns.cpp ping.cpp arp.cpp ifconfig.cpp date.cpp echo.cpp ls.cpp ps.cpp df.cpp uptime.cpp cat.cpp kill.cpp version.cpp lspci.cpp mkdir.cpp sleep.cpp -SRC_SHELL= shell/shell.cpp -SRC_CURSES= less.cpp dmesg.cpp -OBJ_SHELL= $(SRC_SHELL:%.cpp=$(TMP_APP)/%.o) -OBJ= $(SRC:%.cpp=$(TMP_APP)/%.o) $(SRC_CURSES:%.cpp=$(TMP_APP)/%.o) $(OBJ_SHELL) -APP= $(SRC:%.cpp=$(BUILD)/$(ARCH)/bin/%) -APP_SHELL= $(BUILD)/$(ARCH)/bin/shell -APP_CURSES= $(SRC_CURSES:%.cpp=$(BUILD)/$(ARCH)/bin/%) - -# $(BZIP2_INCLUDE) - -### TODO $(BZIP2) -LIB= $(LIBGCC) $(LIBLIGHTOSPP) $(LIBC) $(LIBCPP) $(LIBLIGHTOS) -LIB_CURSES= $(LIB) $(LIBCURSESPP) - -LIBS= --start-group $(LIB) --end-group -LIBS_CURSES= --start-group $(LIB_CURSES) --end-group - -dep: - @makedepend -f - $(INCLUDE_MAKEDEPEND) $(SRC) $(SRC_SHELL) $(SRC_CURSES) -p$(TMP_APP)/ > $(DEP) - --include $(DEP) - -all: dep $(APP) $(APP_SHELL) $(APP_CURSES) $(PORTED_APPS) - -$(PORTED_APPS): - @make -C $(@) get - @make -C $(@) all - -$(TMP_APP)/%.o: %.cpp - @echo " C++ apps/$(@:$(TMP_APP)/%.o=%.cpp)" - @$(CPP) $(CPP_FLAGS) -c $(@:$(TMP_APP)/%.o=%.cpp) -o $(@) - -$(APP): $(BUILD)/$(ARCH)/bin/%: $(TMP_APP)/%.o $(LIB) - @echo " LD apps/$(@:$(BUILD)/$(ARCH)/bin/%=%)" - @$(LD) $(LD_FLAGS) -T $(LDSCRIPT_CPP) -o $(@) $(CRT0_CPP) $(@:$(BUILD)/$(ARCH)/bin/%=$(TMP_APP)/%.o) $(LIBS) - -$(APP_SHELL): $(OBJ_SHELL) $(LIB) - @echo " LD apps/shell" - @$(LD) $(LD_FLAGS) -T $(LDSCRIPT_CPP) -o $(@) $(CRT0_CPP) $(OBJ_SHELL) $(LIBS) - -$(APP_CURSES): $(BUILD)/$(ARCH)/bin/%: $(TMP_APP)/%.o $(LIB_CURSES) - @echo " LD apps/$(@:$(BUILD)/$(ARCH)/bin/%=%)" - @$(LD) $(LD_FLAGS) -T $(LDSCRIPT_CPP) -o $(@) $(CRT0_CPP) $(@:$(BUILD)/$(ARCH)/bin/%=$(TMP_APP)/%.o) $(LIBS_CURSES) - -clean: - @make -C nano clean - @make -C binutils clean - @make -C yasm clean - @make -C nasm clean - @make -C make clean - @make -C bash clean - @make -C dash clean - @rm -f $(DEP) $(OBJ) $(APP) $(APP_SHELL) $(APP_CURSES) +############################################################################### +######### lightOS Makfile ########## +############################################################################### +include ../Makefile.config +include ../Makefile.rules + +.PHONY : $(PORTED_APPS) + +SRC:= help.cpp mem.cpp pwd.cpp server.cpp lslib.cpp dns.cpp ping.cpp arp.cpp \ + ifconfig.cpp date.cpp echo.cpp ls.cpp ps.cpp df.cpp uptime.cpp cat.cpp \ + kill.cpp version.cpp lspci.cpp mkdir.cpp sleep.cpp +SRC_SHELL:= shell/shell.cpp +SRC_CURSES:= less.cpp dmesg.cpp +OBJ_SHELL:= $(SRC_SHELL:%.cpp=$(TMP_APP)/%.o) +OBJ:= $(SRC:%.cpp=$(TMP_APP)/%.o) $(SRC_CURSES:%.cpp=$(TMP_APP)/%.o) $(OBJ_SHELL) +APP:= $(SRC:%.cpp=$(BUILD)/$(ARCH)/bin/%) +APP_SHELL:= $(BUILD)/$(ARCH)/bin/shell +APP_CURSES:= $(SRC_CURSES:%.cpp=$(BUILD)/$(ARCH)/bin/%) +DEPS:= $(SRC:%.cpp=%.dep) $(SRC_SHELL:%.cpp=%.dep) $(SRC_CURSES:%.cpp=%.dep) +LIB:= $(LIBGCC) $(LIBLIGHTOSPP) $(LIBC) $(LIBCPP) $(LIBLIGHTOS) +LIB_CURSES:= $(LIB) $(LIBCURSESPP) +LIBS:= --start-group $(LIB) --end-group +LIBS_CURSES:= --start-group $(LIB_CURSES) --end-group + +-include $(DEPS) + +all: $(APP) $(APP_SHELL) $(APP_CURSES) + +$(OBJ): + @echo " C++ apps/$(@:$(TMP_APP)/%.o=%.cpp)" + @$(CPP) $(CPP_FLAGS) -MD -MF $(@:$(TMP_APP)/%.o=%.dep) -MT $@ -c $(@:$(TMP_APP)/%.o=%.cpp) -o $@ + +$(APP): $(BUILD)/$(ARCH)/bin/%: $(TMP_APP)/%.o $(LIB) + @echo " LD apps/$(@:$(BUILD)/$(ARCH)/bin/%=%)" + @$(LD) $(LD_FLAGS) -T $(LDSCRIPT_CPP) -o $@ $(CRT0_CPP) $(@:$(BUILD)/$(ARCH)/bin/%=$(TMP_APP)/%.o) $(LIBS) + +$(APP_SHELL): $(OBJ_SHELL) $(LIB) + @echo " LD apps/shell" + @$(LD) $(LD_FLAGS) -T $(LDSCRIPT_CPP) -o $@ $(CRT0_CPP) $(OBJ_SHELL) $(LIBS) + +$(APP_CURSES): $(BUILD)/$(ARCH)/bin/%: $(TMP_APP)/%.o $(LIB_CURSES) + @echo " LD apps/$(@:$(BUILD)/$(ARCH)/bin/%=%)" + @$(LD) $(LD_FLAGS) -T $(LDSCRIPT_CPP) -o $@ $(CRT0_CPP) $(@:$(BUILD)/$(ARCH)/bin/%=$(TMP_APP)/%.o) $(LIBS_CURSES) + +clean: + @rm -f $(DEPS) $(OBJ) $(APP) $(APP_SHELL) $(APP_CURSES) diff --git a/kernel/Makefile b/kernel/Makefile index 7fb03bf..7bac56d 100644 --- a/kernel/Makefile +++ b/kernel/Makefile @@ -30,16 +30,13 @@ endif SRC_C= libc/errno.c libc/memory.c libc/sbrk.c libc/ctype.c libc/conversion.c \ libarch/$(ARCH)/atomic.c \ $(patsubst %,libc/string/%, memchr.c memcmp.c memcpy.c memmove.c memset.c strcat.c strchr.c strcmp.c strcpy.c strcspn.c strlen.c strncat.c strncmp.c strncpy.c strpbrk.c strrchr.c strspn.c strstr.c strtok.c) +DEPS:= $(SRC:%.cpp=%:dep) $(SRC_C:%.c=%.dep) $(SRC:%.cpp=%:dbg.dep) $(SRC_C:%.c=%.dbg.dep) INCLUDE= -I $(ROOT_DIR)/kernel/include $(LIBARCH_INCLUDE) $(LIBC_INCLUDE) $(LIBCPP_INCLUDE) $(LIBLIGHTOSPP_INCLUDE) $(LIBKERNEL_INCLUDE) $(LIBSERVER_INCLUDE) -dep: - @makedepend -f - -DNDEBUG $(INCLUDE_MAKEDEPEND) $(INCLUDE) $(SRC) $(SRC_C) -p$(TMP_KERNEL)/ > $(DEP) - @makedepend -f - $(INCLUDE_MAKEDEPEND) $(INCLUDE) $(SRC) $(SRC_C) -p$(TMP_KERNEL)/ -o-dbg.o >> $(DEP) +-include $(DEPS) --include $(DEP) - -all: dep $(BUILD)/$(ARCH)/system/kernel $(BUILD)/$(ARCH)/system/kernel-dbg +all: $(BUILD)/$(ARCH)/system/kernel $(BUILD)/$(ARCH)/system/kernel-dbg $(BUILD)/$(ARCH)/system/kernel: $(OBJ) $(OBJ_C) $(OBJ_ASM) $(OBJ_YASM) $(LIBGCC) $(ARCH)/kernel.ld @echo " LD kernel" @@ -49,21 +46,21 @@ $(BUILD)/$(ARCH)/system/kernel-dbg: $(OBJ_DBG) $(OBJ_C_DBG) $(OBJ_ASM) $(OBJ_YAS @echo " LD (Debug) kernel" @$(LD) -T $(ARCH)/kernel.ld -o $(@) $(OBJ_ASM) $(OBJ_DBG) $(OBJ_C_DBG) $(LIBGCC) -$(TMP_KERNEL)/%.o: %.cpp +$(OBJ): @echo " C++ kernel/$(@:$(TMP_KERNEL)/%.o=%.cpp)" - @$(CPP) -DNDEBUG $(KERNEL_CPP_FLAGS) $(INCLUDE) -c $(@:$(TMP_KERNEL)/%.o=%.cpp) -o $(@) + @$(CPP) -DNDEBUG $(KERNEL_CPP_FLAGS) $(INCLUDE) -MD -MF $(@:$(TMP_KERNEL)/%.o=%.dep) -MT $@ -c $(@:$(TMP_KERNEL)/%.o=%.cpp) -o $(@) -$(TMP_KERNEL)/%-dbg.o: %.cpp +$(OBJ_DBG): @echo " C++ (Debug) kernel/$(@:$(TMP_KERNEL)/%-dbg.o=%.cpp)" - @$(CPP) $(KERNEL_CPP_FLAGS) $(INCLUDE) -c $(@:$(TMP_KERNEL)/%-dbg.o=%.cpp) -o $(@) + @$(CPP) $(KERNEL_CPP_FLAGS) $(INCLUDE) -MD -MF $(@:$(TMP_KERNEL)/%.o=%.dbg.dep) -MT $@ -c $(@:$(TMP_KERNEL)/%-dbg.o=%.cpp) -o $(@) -$(TMP_KERNEL)/%.o: %.c +$(OBJ_C): @echo " C kernel/$(@:$(TMP_KERNEL)/%.o=%.c)" - @$(CC) -DNDEBUG $(KERNEL_C_FLAGS) $(INCLUDE) -c $(@:$(TMP_KERNEL)/%.o=%.c) -o $(@) + @$(CC) -DNDEBUG $(KERNEL_C_FLAGS) $(INCLUDE) -MD -MF $(@:$(TMP_KERNEL)/%.o=%.dep) -MT $@ -c $(@:$(TMP_KERNEL)/%.o=%.c) -o $(@) -$(TMP_KERNEL)/%-dbg.o: %.c +$(OBJ_C_DBG): @echo " C (Debug) kernel/$(@:$(TMP_KERNEL)/%-dbg.o=%.c)" - @$(CC) $(KERNEL_C_FLAGS) $(INCLUDE) -c $(@:$(TMP_KERNEL)/%-dbg.o=%.c) -o $(@) + @$(CC) $(KERNEL_C_FLAGS) $(INCLUDE) -MD -MF $(@:$(TMP_KERNEL)/%.o=%.dbg.dep) -MT $@ -c $(@:$(TMP_KERNEL)/%-dbg.o=%.c) -o $(@) $(OBJ_ASM): $(SRC_ASM) @echo " AS kernel/$(@:$(TMP_KERNEL)/%.o=%.S)" @@ -74,7 +71,7 @@ $(OBJ_YASM): $(SRC_YASM) @yasm -f bin -o $(@) $(@:%.bin=%.S) clean: - @rm -f $(DEP) $(OBJ) $(OBJ_DBG) $(OBJ_C) $(OBJ_C_DBG) $(OBJ_ASM) $(OBJ_YASM) $(BUILD)/$(ARCH)/system/kernel $(BUILD)/$(ARCH)/system/kernel-dbg + @rm -f $(DEPS) $(OBJ) $(OBJ_DBG) $(OBJ_C) $(OBJ_C_DBG) $(OBJ_ASM) $(OBJ_YASM) $(BUILD)/$(ARCH)/system/kernel $(BUILD)/$(ARCH)/system/kernel-dbg # Additional dependencies: $(TMP_KERNEL)/$(ARCH)/kernel.o: $(ARCH)/smp.bin diff --git a/lib/curses++/Makefile b/lib/curses++/Makefile index c7e9d4f..ddcc5e5 100644 --- a/lib/curses++/Makefile +++ b/lib/curses++/Makefile @@ -4,15 +4,13 @@ include ../../Makefile.config include ../../Makefile.rules -SRC_CPP= curses.cpp -OBJ_CPP= $(SRC_CPP:%.cpp=$(TMP_LIBCURSESPP)/%.o) +SRC:= $(shell find . -maxdepth 1 -name "*.cpp") +OBJ:= $(SRC:%.cpp=$(TMP_LIBCURSESPP)/%.o) +DEPS:= $(SRC:%.cpp=%.dep) -dep: - @makedepend -f - $(INCLUDE_MAKEDEPEND) $(SRC_CPP) -p$(TMP_LIBCURSESPP)/ > $(DEP) +-include $(DEPS) --include $(DEP) - -all: dep $(LIBCURSESPP) +all: $(LIBCURSESPP) install-headers: uninstall-headers @ln -s $(ROOT_DIR)/lib/curses++/include/curses++ $(TOOLCHAIN)/bin/usr/include/curses++ @@ -20,13 +18,13 @@ install-headers: uninstall-headers uninstall-headers: @rm -f $(TOOLCHAIN)/bin/usr/include/curses++ -$(LIBCURSESPP): $(OBJ_CPP) +$(LIBCURSESPP): $(OBJ) @echo " LD libcurses++.so" - @$(LD) -T $(LIB_LDSCRIPT_CPP) -shared -o $(LIBCURSESPP) -h/lib/libcurses++.so $(OBJ_CPP) $(LIBGCC) + @$(LD) -T $(LIB_LDSCRIPT_CPP) -shared -o $(LIBCURSESPP) -h/lib/libcurses++.so $(OBJ) $(LIBGCC) -$(TMP_LIBCURSESPP)/%.o: %.cpp +$(OBJ): @echo " C++ libcurses++/$(@:$(TMP_LIBCURSESPP)/%.o=%.cpp)" - @$(CPP) $(LIB_CPP_FLAGS) -c $(@:$(TMP_LIBCURSESPP)/%.o=%.cpp) -o $(@) + @$(CPP) $(LIB_CPP_FLAGS) -MD -MF $(@:$(TMP_LIBCURSESPP)/%.o=%.dep) -MT $@ -c $(@:$(TMP_LIBCURSESPP)/%.o=%.cpp) -o $@ clean: - @rm -f $(DEP) $(OBJ_CPP) $(BUILD)/$(ARCH)/lib/libcurses++.so + @rm -f $(DEPS) $(OBJ) $(BUILD)/$(ARCH)/lib/libcurses++.so diff --git a/lib/libc++/Makefile b/lib/libc++/Makefile index 52abc6d..2e39504 100644 --- a/lib/libc++/Makefile +++ b/lib/libc++/Makefile @@ -4,16 +4,14 @@ include ../../Makefile.config include ../../Makefile.rules -SRC_CPP= ostream.cpp iostream.cpp ios.cpp \ - $(patsubst %,libsupc++/%, purevirtual.cpp initialize.cpp initialize_lib.cpp finalize.cpp memory.cpp typeinfo.cpp stdexcept.cpp) -OBJ_CPP= $(SRC_CPP:%.cpp=$(TMP_LIBCPP)/%.o) +SRC:= $(shell find . -maxdepth 1 -name "*.cpp") \ + $(patsubst %,libsupc++/%, purevirtual.cpp initialize.cpp initialize_lib.cpp finalize.cpp memory.cpp typeinfo.cpp stdexcept.cpp) +OBJ:= $(SRC:%.cpp=$(TMP_LIBCPP)/%.o) +DEPS:= $(SRC:%.cpp=%.dep) -dep: - @makedepend -f - $(INCLUDE_MAKEDEPEND) $(SRC_CPP) -p$(TMP_LIBCPP)/ > $(DEP) +-include $(DEPS) --include $(DEP) - -all: dep $(BUILD)/$(ARCH)/lib/libc++.so $(BUILD)/$(ARCH)/lib/crt0++.o +all: $(BUILD)/$(ARCH)/lib/libc++.so $(BUILD)/$(ARCH)/lib/crt0++.o install-headers: uninstall-headers @$(foreach header, $(shell find include -mindepth 1 -maxdepth 1 -name "*"), ln -s $(ROOT_DIR)/lib/libc++/$(header) $(TOOLCHAIN)/bin/usr/$(header) &&) true @@ -26,21 +24,21 @@ install: uninstall: -$(BUILD)/$(ARCH)/lib/libc++.so: $(OBJ_CPP) $(BUILD)/$(ARCH)/lib/initialize.o +$(BUILD)/$(ARCH)/lib/libc++.so: $(OBJ) $(BUILD)/$(ARCH)/lib/initialize.o @echo " LD libc++.so" - @$(LD) -T $(LIB_LDSCRIPT_CPP) -shared -o $(BUILD)/$(ARCH)/lib/libc++.so -h/lib/libc++.so $(OBJ_CPP) $(LIBGCC) + @$(LD) -T $(LIB_LDSCRIPT_CPP) -shared -o $(BUILD)/$(ARCH)/lib/libc++.so -h/lib/libc++.so $(OBJ) $(LIBGCC) -$(OBJ_CPP): +$(OBJ): @echo " C++ libc++/$(@:$(TMP_LIBCPP)/%.o=%.cpp)" - @$(CPP) $(LIB_CPP_FLAGS) -c $(@:$(TMP_LIBCPP)/%.o=%.cpp) -o $(@) + @$(CPP) $(LIB_CPP_FLAGS) -MD -MF $(@:$(TMP_LIBCPP)/%.o=%.dep) -MT $@ -c $(@:$(TMP_LIBCPP)/%.o=%.cpp) -o $@ $(BUILD)/$(ARCH)/lib/crt0++.o: crt0/$(ARCH)-crt0++.S @echo " ASM libc++/crt0/$(ARCH)-crt0++.S" - @$(AS) -o $(@) crt0/$(ARCH)-crt0++.S + @$(AS) -o $@ crt0/$(ARCH)-crt0++.S -$(BUILD)/$(ARCH)/lib/initialize.o: libsupc++/initialize.cpp +$(BUILD)/$(ARCH)/lib/initialize.o: @echo " C++ libc++/libsupc++/initialize.cpp" - @$(CPP) $(CPP_FLAGS) -c libsupc++/initialize.cpp -o $(@) + @$(CPP) $(CPP_FLAGS) -MD -MF libsupc++/initialize.dep -MT $@ -c libsupc++/initialize.cpp -o $@ clean: - @rm -f $(DEP) $(OBJ_CPP) $(BUILD)/$(ARCH)/lib/libc++.so $(BUILD)/$(ARCH)/lib/crt0++.o $(BUILD)/$(ARCH)/lib/initialize.o + @rm -f $(DEPS) $(OBJ) $(BUILD)/$(ARCH)/lib/libc++.so $(BUILD)/$(ARCH)/lib/crt0++.o $(BUILD)/$(ARCH)/lib/initialize.o diff --git a/lib/libc/Makefile b/lib/libc/Makefile index 221cddf..c74305c 100644 --- a/lib/libc/Makefile +++ b/lib/libc/Makefile @@ -4,24 +4,19 @@ include ../../Makefile.config include ../../Makefile.rules -SRC_C= assert.c errno.c inttypes.c locale.c math.c string.c time.c todo.c ctype.c \ - 3rdparty/getopt.c 3rdparty/getopt1.c 3rdparty/memory.c 3rdparty/rand.c \ - stdlib/bsearch.c stdlib/qsort.c stdlib/conversion.c stdlib/atexit.c stdlib/env.c stdlib/mbchar.c \ - stdlib/mbstring.c stdlib/sbrk.c stdlib/stdlib.c \ - stdio/printf.c stdio/stdio.c stdio/vsnprintf.c stdio/scanf.c \ - $(patsubst %, string/%, memchr.c memcmp.c memcpy.c memmove.c memset.c strcat.c strchr.c strcmp.c strcpy.c strcspn.c strlen.c strncat.c strncmp.c strncpy.c strpbrk.c strrchr.c strspn.c strstr.c strtok.c) \ - libarch/$(ARCH)/atomic.c libarch/$(ARCH)/setjmp.c \ - posix/dirent.c posix/fcntl.c posix/pwd.c posix/signal.c posix/stat.c posix/stdio.c posix/stdlib.c posix/string.c posix/unistd.c posix/utime.c posix/wait.c \ - libunix.c -OBJ_C= $(SRC_C:%.c=$(TMP_LIBC)/%.o) +SRC:= $(shell find . -maxdepth 1 -name "*.c") \ + $(shell find 3rdparty -name "*.c") \ + $(shell find freestanding -name "*.c") \ + $(shell find stdlib -name "*.c") \ + $(shell find stdio -name "*.c") \ + $(shell find libarch/$(ARCH) -name "*.c") \ + $(shell find posix -name "*.c") +OBJ:= $(SRC:%.c=$(TMP_LIBC)/%.o) +DEPS:= $(SRC:%.c=%.dep) -dep: - @make -C libOS/this all - @makedepend -f - $(INCLUDE_MAKEDEPEND) $(SRC_C) -p$(TMP_LIBC)/ > $(DEP) +-include $(DEPS) --include $(DEP) - -all: dep $(BUILD)/$(ARCH)/lib/libc.so $(BUILD)/$(ARCH)/lib/crt0.o +all: $(BUILD)/$(ARCH)/lib/libc.so $(BUILD)/$(ARCH)/lib/crt0.o install-headers: uninstall-headers @ln -s $(ROOT_DIR)/lib/libc/include/libc $(TOOLCHAIN)/bin/usr/include/libc @@ -41,18 +36,18 @@ install: uninstall: # TODO: HACK cmdline.o -$(BUILD)/$(ARCH)/lib/libc.so: $(OBJ_C) $(OBJ_ASM) libOS/this/libOS-$(ARCH).a $(TMP_LIBC)/libOS/cmdline.o +$(BUILD)/$(ARCH)/lib/libc.so: $(OBJ) $(OBJ_ASM) libOS/this/libOS-$(ARCH).a $(TMP_LIBC)/libOS/cmdline.o @echo " LD libc.so" - @$(LD) -T $(LIB_LDSCRIPT_C) -shared -o $(BUILD)/$(ARCH)/lib/libc.so -h/lib/libc.so $(OBJ_C) $(TMP_LIBC)/libOS/cmdline.o $(LIBGCC) libOS/this/libOS-$(ARCH).a + @$(LD) -T $(LIB_LDSCRIPT_C) -shared -o $(BUILD)/$(ARCH)/lib/libc.so -h/lib/libc.so $(OBJ) $(TMP_LIBC)/libOS/cmdline.o $(LIBGCC) libOS/this/libOS-$(ARCH).a -$(TMP_LIBC)/%.o: %.c +$(OBJ): @echo " C libc/$(@:$(TMP_LIBC)/%.o=%.c)" - @$(CC) $(LIB_C_FLAGS) -c $(@:$(TMP_LIBC)/%.o=%.c) -o $(@) + @$(CC) $(LIB_C_FLAGS) -MD -MF $(@:$(TMP_LIBC)/%.o=%.dep) -MT $@ -c $(@:$(TMP_LIBC)/%.o=%.c) -o $@ $(BUILD)/$(ARCH)/lib/crt0.o: libOS/this/crt0/$(ARCH)-crt0.S @echo " ASM libc/libOS/crt0/$(ARCH)-crt0.S" - @$(AS) -o $(@) libOS/this/crt0/$(ARCH)-crt0.S + @$(AS) -o $@ libOS/this/crt0/$(ARCH)-crt0.S clean: @make -C libOS/this clean - @rm -f $(DEP) $(OBJ_C) $(BUILD)/$(ARCH)/lib/libc.so $(BUILD)/$(ARCH)/lib/crt0.o + @rm -f $(DEPS) $(OBJ) $(BUILD)/$(ARCH)/lib/libc.so $(BUILD)/$(ARCH)/lib/crt0.o diff --git a/lib/libc/libOS/lightOS/Makefile b/lib/libc/libOS/lightOS/Makefile dissimilarity index 62% index 4ebfaae..1b95223 100644 --- a/lib/libc/libOS/lightOS/Makefile +++ b/lib/libc/libOS/lightOS/Makefile @@ -1,32 +1,28 @@ -############################################################################### -######### lightOS Makfile ########## -############################################################################### -include ../../../../Makefile.config -include ../../../../Makefile.rules - -SRC_C= abort.c cmdline.c env.c malloc.c stdio.c time.c warning.c \ - posix/dirent.c posix/signal.c posix/stat.c posix/unistd.c posix/workdir.c -OBJ_C= $(SRC_C:%.c=$(TMP_LIBC)/libOS/%.o) -INCLUDE= $(LIBKERNEL_INCLUDE) $(LIBSERVER_INCLUDE) $(LIBC_INCLUDE) $(LIBUNIX_INCLUDE) - -dep: - @makedepend -f - $(INCLUDE_MAKEDEPEND) $(INCLUDE) $(SRC_C) -p$(TMP_LIBC)/libOS/ > $(DEP) - --include $(DEP) - -all: dep libOS-$(ARCH).a $(BUILD)/$(ARCH)/lib/_main.o - -libOS-$(ARCH).a: $(OBJ_C) - @echo " AR libOS.a" - @$(AR) rc libOS-$(ARCH).a $(OBJ_C) - -$(TMP_LIBC)/libOS/%.o: %.c - @echo " C libc/$(@:$(TMP_LIBC)/%.o=%.c)" - @$(CC) $(LIB_C_FLAGS) $(INCLUDE) -c $(@:$(TMP_LIBC)/libOS/%.o=%.c) -o $(@) - -$(BUILD)/$(ARCH)/lib/_main.o: _main.c - @echo " CC libc/libOS/_main.c" - @$(CC) $(C_FLAGS) $(INCLUDE) -c _main.c -o $(@) - -clean: - @rm -f $(DEP) $(OBJ_C) libOS-$(ARCH).a $(BUILD)/$(ARCH)/lib/_main.o +############################################################################### +######### lightOS Makfile ########## +############################################################################### +include ../../../../Makefile.config +include ../../../../Makefile.rules + +SRC:= $(shell find . -name "*.c") +OBJ:= $(SRC:%.c=$(TMP_LIBC)/libOS/%.o) +DEPS:= $(SRC:%.c=%.dep) + +-include $(DEPS) + +all: libOS-$(ARCH).a $(BUILD)/$(ARCH)/lib/_main.o + +libOS-$(ARCH).a: $(OBJ) + @echo " AR libOS-$(ARCH).a" + @$(AR) rc libOS-$(ARCH).a $(OBJ) + +$(OBJ): + @echo " C libc/$(@:$(TMP_LIBC)/%.o=%.c)" + @$(CC) $(LIB_C_FLAGS) -MD -MF $(@:$(TMP_LIBC)/libOS/%.o=%.dep) -MT $@ -c $(@:$(TMP_LIBC)/libOS/%.o=%.c) -o $@ + +$(BUILD)/$(ARCH)/lib/_main.o: _main.c + @echo " CC libc/libOS/_main.c" + @$(CC) $(C_FLAGS) -c _main.c -o $@ + +clean: + @rm -f $(DEPS) $(OBJ) libOS-$(ARCH).a $(BUILD)/$(ARCH)/lib/_main.o diff --git a/lib/lightOS++/Makefile b/lib/lightOS++/Makefile index d673b50..4bef003 100644 --- a/lib/lightOS++/Makefile +++ b/lib/lightOS++/Makefile @@ -4,15 +4,13 @@ include ../../Makefile.config include ../../Makefile.rules -SRC_CPP= config.cpp filesystem.cpp pci.cpp net.cpp cache.cpp kernel_log.cpp -OBJ_CPP= $(SRC_CPP:%.cpp=$(TMP_LIBLIGHTOSPP)/%.o) +SRC:= $(shell find . -maxdepth 1 -name "*.cpp") +OBJ:= $(SRC:%.cpp=$(TMP_LIBLIGHTOSPP)/%.o) +DEPS:= $(SRC:%.cpp=%.dep) -dep: - @makedepend -f - $(INCLUDE_MAKEDEPEND) $(SRC_CPP) -p$(TMP_LIBLIGHTOSPP)/ > $(DEP) +-include $(DEPS) --include $(DEP) - -all: dep $(BUILD)/$(ARCH)/lib/liblightOS++.so +all: $(BUILD)/$(ARCH)/lib/liblightOS++.so install-headers: uninstall-headers @ln -s $(ROOT_DIR)/lib/lightOS++/include/lightOS $(TOOLCHAIN)/bin/usr/include/lightOS @@ -20,13 +18,13 @@ install-headers: uninstall-headers uninstall-headers: @rm -f $(TOOLCHAIN)/bin/usr/include/lightOS -$(BUILD)/$(ARCH)/lib/liblightOS++.so: $(OBJ_CPP) +$(BUILD)/$(ARCH)/lib/liblightOS++.so: $(OBJ) @echo " LD liblightOS++.so" - @$(LD) -T $(LIB_LDSCRIPT_CPP) -shared -o $(BUILD)/$(ARCH)/lib/liblightOS++.so -h/lib/liblightOS++.so $(OBJ_CPP) $(LIBGCC) + @$(LD) -T $(LIB_LDSCRIPT_CPP) -shared -o $(BUILD)/$(ARCH)/lib/liblightOS++.so -h/lib/liblightOS++.so $(OBJ) $(LIBGCC) -$(OBJ_CPP): +$(OBJ): @echo " C++ liblightOS++/$(@:$(TMP_LIBLIGHTOSPP)/%.o=%.cpp)" - @$(CPP) $(LIB_CPP_FLAGS) -c $(@:$(TMP_LIBLIGHTOSPP)/%.o=%.cpp) -o $(@) + @$(CPP) $(LIB_CPP_FLAGS) -MD -MF $(@:$(TMP_LIBLIGHTOSPP)/%.o=%.dep) -MT $@ -c $(@:$(TMP_LIBLIGHTOSPP)/%.o=%.cpp) -o $@ clean: - @rm -f $(DEP) $(OBJ_CPP) $(BUILD)/$(ARCH)/lib/liblightOS++.so + @rm -f $(DEPS) $(OBJ) $(BUILD)/$(ARCH)/lib/liblightOS++.so diff --git a/lib/lightOS/Makefile b/lib/lightOS/Makefile index 2b8df97..6e3db7a 100644 --- a/lib/lightOS/Makefile +++ b/lib/lightOS/Makefile @@ -4,30 +4,27 @@ include ../../Makefile.config include ../../Makefile.rules -SRC_C= libkernel/syscall.c libkernel/message.c libkernel/wait.c libserver/fs.c libserver/console.c -SRC_ASM= libkernel/$(ARCH)/syscall.S -OBJ_C= $(SRC_C:%.c=$(TMP_LIBLIGHTOS)/%.o) -OBJ_ASM= $(SRC_ASM:%.S=$(TMP_LIBLIGHTOS)/%.o) +SRC:= libkernel/syscall.c libkernel/message.c libkernel/wait.c libserver/fs.c libserver/console.c +SRC_ASM:= libkernel/$(ARCH)/syscall.S +OBJ:= $(SRC:%.c=$(TMP_LIBLIGHTOS)/%.o) +OBJ_ASM:= $(SRC_ASM:%.S=$(TMP_LIBLIGHTOS)/%.o) +DEPS:= $(SRC:%.c=%.dep) -dep: - @makedepend -f - $(INCLUDE_MAKEDEPEND) $(SRC_C) -p$(TMP_LIBLIGHTOS)/ > $(DEP) +-include $(DEPS) --include $(DEP) +all: $(BUILD)/$(ARCH)/lib/liblightOS.so -all: dep $(BUILD)/$(ARCH)/lib/liblightOS.so - -$(BUILD)/$(ARCH)/lib/liblightOS.so: $(OBJ_C) $(OBJ_ASM) +$(BUILD)/$(ARCH)/lib/liblightOS.so: $(OBJ) $(OBJ_ASM) @echo " LD liblightOS.so" - @$(LD) -T $(LIB_LDSCRIPT_C) -shared -o $(BUILD)/$(ARCH)/lib/liblightOS.so -h/lib/liblightOS.so $(OBJ_C) $(OBJ_ASM) $(LIBGCC) + @$(LD) -T $(LIB_LDSCRIPT_C) -shared -o $(BUILD)/$(ARCH)/lib/liblightOS.so -h/lib/liblightOS.so $(OBJ) $(OBJ_ASM) $(LIBGCC) -$(TMP_LIBLIGHTOS)/%.o: %.c +$(OBJ): @echo " C lib/lightOS/$(@:$(TMP_LIBLIGHTOS)/%.o=%.c)" - @$(CC) $(LIB_C_FLAGS) -c $(@:$(TMP_LIBLIGHTOS)/%.o=%.c) -o $(@) - + @$(CC) $(LIB_C_FLAGS) -MD -MF $(@:$(TMP_LIBLIGHTOS)/%.o=%.dep) -MT $@ -c $(@:$(TMP_LIBLIGHTOS)/%.o=%.c) -o $@ $(OBJ_ASM): $(SRC_ASM) @echo " ASM lib/lightOS/$(@:$(TMP_LIBLIGHTOS)/%.o=%.S)" - @$(AS) -o $(@) $(@:$(TMP_LIBLIGHTOS)/%.o=%.S) + @$(AS) -o $@ $(@:$(TMP_LIBLIGHTOS)/%.o=%.S) clean: - @rm -f $(DEP) $(OBJ_C) $(BUILD)/$(ARCH)/lib/liblightOS.so + @rm -f $(DEPS) $(OBJ) $(BUILD)/$(ARCH)/lib/liblightOS.so diff --git a/scripts/clean.sh b/scripts/clean.sh index df579c3..e494823 100755 --- a/scripts/clean.sh +++ b/scripts/clean.sh @@ -3,15 +3,15 @@ if [ -e Makefile.config ] then make --no-print-directory -C uninstall-headers - make -C apps clean - make -C server clean - make -C kernel clean - make -C lib/ports clean - make -C lib/curses++ clean - make -C lib/libc++ clean - make -C lib/lightOS++ clean - make -C lib/libc clean - make -C lib/lightOS clean + make --no-print-directory -C apps clean + make --no-print-directory -C server clean + make --no-print-directory -C kernel clean + make --no-print-directory -C lib/ports clean + make --no-print-directory -C lib/curses++ clean + make --no-print-directory -C lib/libc++ clean + make --no-print-directory -C lib/lightOS++ clean + make --no-print-directory -C lib/libc clean + make --no-print-directory -C lib/lightOS clean ./scripts/link.sh rm -f Makefile.asm.config Makefile.config fi diff --git a/server/Makefile b/server/Makefile dissimilarity index 60% index 2a764b9..19d0492 100644 --- a/server/Makefile +++ b/server/Makefile @@ -1,156 +1,152 @@ -############################################################################### -######### lightOS Makefile ########## -############################################################################### -include ../Makefile.config -include ../Makefile.rules - -SRC_CONSOLE= console/console.cpp console/main.cpp console/vram.cpp -SRC_FLOPPY= floppy/floppy.cpp -SRC_IDE= ide/ide.cpp ide/main.cpp -SRC_INIT= init/init.cpp -SRC_KLOG= klog/klog.cpp -SRC_PCI= pci/pci.cpp -SRC_PS2= ps2/controller.cpp ps2/keyboard.cpp ps2/mouse.cpp -SRC_SERIAL= serial/serial.cpp -SRC_VFS= vfs/vfs.cpp -SRC_NET= net/net.cpp net/ethernet.cpp net/arp.cpp net/ip.cpp net/tcp.cpp net/udp.cpp net/dhcp.cpp net/dns.cpp -SRC_PCNET= net/pcnet/pcnet.cpp -SRC_RTL8139= net/rtl8139/rtl8139.cpp -SRC_FS= fs/file.cpp fs/directory.cpp fs/filesystem.cpp -SRC_DEVFS= fs/devfs/block.cpp fs/devfs/devfs.cpp -SRC_EXT2= fs/ext2/file.cpp fs/ext2/ext2.cpp -SRC_FAT= fs/fat/file.cpp fs/fat/fat.cpp -SRC_ISO9660= fs/iso9660/file.cpp fs/iso9660/iso9660.cpp -SRC_PIPEFS= fs/pipefs/pipefs.cpp fs/pipefs/block.cpp -SRC_TMPFS= fs/tmpfs/tmpfs.cpp fs/tmpfs/block.cpp -SRC_CPP= $(SRC_CONSOLE) $(SRC_FLOPPY) $(SRC_IDE) $(SRC_INIT) $(SRC_KLOG) $(SRC_PCI) $(SRC_PS2) $(SRC_SERIAL) $(SRC_VFS) \ - $(SRC_NET) $(SRC_PCNET) $(SRC_RTL8139) $(SRC_FS) $(SRC_DEVFS) $(SRC_EXT2) $(SRC_FAT) $(SRC_ISO9660) $(SRC_PIPEFS) \ - $(SRC_TMPFS) -OBJ_CONSOLE= $(SRC_CONSOLE:%.cpp=$(TMP_SERVER)/%.o) -OBJ_FLOPPY= $(SRC_FLOPPY:%.cpp=$(TMP_SERVER)/%.o) -OBJ_IDE= $(SRC_IDE:%.cpp=$(TMP_SERVER)/%.o) -OBJ_INIT= $(SRC_INIT:%.cpp=$(TMP_SERVER)/%.o) -OBJ_KLOG= $(SRC_KLOG:%.cpp=$(TMP_SERVER)/%.o) -OBJ_PCI= $(SRC_PCI:%.cpp=$(TMP_SERVER)/%.o) -OBJ_PS2= $(SRC_PS2:%.cpp=$(TMP_SERVER)/%.o) -OBJ_SERIAL= $(SRC_SERIAL:%.cpp=$(TMP_SERVER)/%.o) -OBJ_VFS= $(SRC_VFS:%.cpp=$(TMP_SERVER)/%.o) -OBJ_NET= $(SRC_NET:%.cpp=$(TMP_SERVER)/%.o) -OBJ_PCNET= $(SRC_PCNET:%.cpp=$(TMP_SERVER)/%.o) -OBJ_RTL8139= $(SRC_RTL8139:%.cpp=$(TMP_SERVER)/%.o) -OBJ_FS= $(SRC_FS:%.cpp=$(TMP_SERVER)/%.o) -OBJ_DEVFS= $(SRC_DEVFS:%.cpp=$(TMP_SERVER)/%.o) $(OBJ_FS) -OBJ_EXT2= $(SRC_EXT2:%.cpp=$(TMP_SERVER)/%.o) $(OBJ_FS) -OBJ_FAT= $(SRC_FAT:%.cpp=$(TMP_SERVER)/%.o) $(OBJ_FS) -OBJ_ISO9660= $(SRC_ISO9660:%.cpp=$(TMP_SERVER)/%.o) $(OBJ_FS) -OBJ_PIPEFS= $(SRC_PIPEFS:%.cpp=$(TMP_SERVER)/%.o) $(OBJ_FS) -OBJ_TMPFS= $(SRC_TMPFS:%.cpp=$(TMP_SERVER)/%.o) $(OBJ_FS) -OBJ_CPP= $(SRC_CPP:%.cpp=$(TMP_SERVER)/%.o) -LIBS= --start-group $(LIBGCC) $(LIBLIGHTOSPP) $(LIBCPP) $(LIBC) $(LIBLIGHTOS) --end-group - -dep: - @makedepend -f - $(INCLUDE_MAKEDEPEND) $(SRC_CPP) -p$(TMP_SERVER)/ > $(DEP) - --include $(DEP) - -all: dep \ - $(BUILD)/$(ARCH)/system/server/console \ - $(BUILD)/$(ARCH)/system/server/floppy \ - $(BUILD)/$(ARCH)/system/server/ide \ - $(BUILD)/$(ARCH)/system/server/init \ - $(BUILD)/$(ARCH)/system/server/klog \ - $(BUILD)/$(ARCH)/system/server/pci \ - $(BUILD)/$(ARCH)/system/server/ps2 \ - $(BUILD)/$(ARCH)/system/server/serial \ - $(BUILD)/$(ARCH)/system/server/vfs \ - $(BUILD)/$(ARCH)/system/server/net \ - $(BUILD)/$(ARCH)/system/server/pcnet \ - $(BUILD)/$(ARCH)/system/server/rtl8139 \ - $(BUILD)/$(ARCH)/system/server/devfs \ - $(BUILD)/$(ARCH)/system/server/ext2 \ - $(BUILD)/$(ARCH)/system/server/fat \ - $(BUILD)/$(ARCH)/system/server/iso9660 \ - $(BUILD)/$(ARCH)/system/server/pipefs \ - $(BUILD)/$(ARCH)/system/server/tmpfs - -$(BUILD)/$(ARCH)/system/server/console: $(OBJ_CONSOLE) - @echo " LD server/console" - @$(LD) $(LD_FLAGS) -T $(LDSCRIPT_CPP) -o $(@) $(CRT0_CPP) $(OBJ_CONSOLE) $(LIBS) - -$(BUILD)/$(ARCH)/system/server/floppy: $(OBJ_FLOPPY) - @echo " LD server/floppy" - @$(LD) $(LD_FLAGS) -T $(LDSCRIPT_CPP) -o $(@) $(CRT0_CPP) $(OBJ_FLOPPY) $(LIBS) - -$(BUILD)/$(ARCH)/system/server/ide: $(OBJ_IDE) - @echo " LD server/ide" - @$(LD) $(LD_FLAGS) -T $(LDSCRIPT_CPP) -o $(@) $(CRT0_CPP) $(OBJ_IDE) $(LIBS) - -$(BUILD)/$(ARCH)/system/server/init: $(OBJ_INIT) - @echo " LD server/init" - @$(LD) $(LD_FLAGS) -T $(LDSCRIPT_CPP) -o $(@) $(CRT0_CPP) $(OBJ_INIT) $(LIBS) - -$(BUILD)/$(ARCH)/system/server/klog: $(OBJ_KLOG) - @echo " LD server/klog" - @$(LD) $(LD_FLAGS) -T $(LDSCRIPT_CPP) -o $(@) $(CRT0_CPP) $(OBJ_KLOG) $(LIBS) - -$(BUILD)/$(ARCH)/system/server/pci: $(OBJ_PCI) - @echo " LD server/pci" - @$(LD) $(LD_FLAGS) -T $(LDSCRIPT_CPP) -o $(@) $(CRT0_CPP) $(OBJ_PCI) $(LIBS) - -$(BUILD)/$(ARCH)/system/server/ps2: $(OBJ_PS2) - @echo " LD server/ps2" - @$(LD) $(LD_FLAGS) -T $(LDSCRIPT_CPP) -o $(@) $(CRT0_CPP) $(OBJ_PS2) $(LIBS) - -$(BUILD)/$(ARCH)/system/server/serial: $(OBJ_SERIAL) - @echo " LD server/serial" - @$(LD) $(LD_FLAGS) -T $(LDSCRIPT_CPP) -o $(@) $(CRT0_CPP) $(OBJ_SERIAL) $(LIBS) - -$(BUILD)/$(ARCH)/system/server/vfs: $(OBJ_VFS) - @echo " LD server/vfs" - @$(LD) $(LD_FLAGS) -T $(LDSCRIPT_CPP) -o $(@) $(CRT0_CPP) $(OBJ_VFS) $(LIBS) - -$(BUILD)/$(ARCH)/system/server/net: $(OBJ_NET) - @echo " LD server/net" - @$(LD) $(LD_FLAGS) -T $(LDSCRIPT_CPP) -o $(@) $(CRT0_CPP) $(OBJ_NET) $(LIBS) - -$(BUILD)/$(ARCH)/system/server/pcnet: $(OBJ_PCNET) - @echo " LD server/pcnet" - @$(LD) $(LD_FLAGS) -T $(LDSCRIPT_CPP) -o $(@) $(CRT0_CPP) $(OBJ_PCNET) $(LIBS) - -$(BUILD)/$(ARCH)/system/server/rtl8139: $(OBJ_RTL8139) - @echo " LD server/rtl8139" - @$(LD) $(LD_FLAGS) -T $(LDSCRIPT_CPP) -o $(@) $(CRT0_CPP) $(OBJ_RTL8139) $(LIBS) - -$(BUILD)/$(ARCH)/system/server/devfs: $(OBJ_DEVFS) - @echo " LD server/devfs" - @$(LD) $(LD_FLAGS) -T $(LDSCRIPT_CPP) -o $(@) $(CRT0_CPP) $(OBJ_DEVFS) $(LIBS) - -$(BUILD)/$(ARCH)/system/server/ext2: $(OBJ_EXT2) - @echo " LD server/ext2" - @$(LD) $(LD_FLAGS) -T $(LDSCRIPT_CPP) -o $(@) $(CRT0_CPP) $(OBJ_EXT2) $(LIBS) - -$(BUILD)/$(ARCH)/system/server/fat: $(OBJ_FAT) - @echo " LD server/fat" - @$(LD) $(LD_FLAGS) -T $(LDSCRIPT_CPP) -o $(@) $(CRT0_CPP) $(OBJ_FAT) $(LIBS) - -$(BUILD)/$(ARCH)/system/server/iso9660: $(OBJ_ISO9660) - @echo " LD server/iso9660" - @$(LD) $(LD_FLAGS) -T $(LDSCRIPT_CPP) -o $(@) $(CRT0_CPP) $(OBJ_ISO9660) $(LIBS) - -$(BUILD)/$(ARCH)/system/server/pipefs: $(OBJ_PIPEFS) - @echo " LD server/pipefs" - @$(LD) $(LD_FLAGS) -T $(LDSCRIPT_CPP) -o $(@) $(CRT0_CPP) $(OBJ_PIPEFS) $(LIBS) - -$(BUILD)/$(ARCH)/system/server/tmpfs: $(OBJ_TMPFS) - @echo " LD server/tmpfs" - @$(LD) $(LD_FLAGS) -T $(LDSCRIPT_CPP) -o $(@) $(CRT0_CPP) $(OBJ_TMPFS) $(LIBS) - -$(TMP_SERVER)/%.o: %.cpp - @echo " C++ server/$(@:$(TMP_SERVER)/%.o=%.cpp)" - @$(CPP) $(CPP_FLAGS) -c $(@:$(TMP_SERVER)/%.o=%.cpp) -o $(@) - -clean: - @cd $(BUILD)/$(ARCH)/system/server && rm -f console floppy ide init klog pci ps2 serial vfs net \ - pcnet rtl8139 devfs ext2 fat iso9660 pipefs tmpfs - - @rm -f $(DEP) $(OBJ_CPP) +############################################################################### +######### lightOS Makefile ########## +############################################################################### +include ../Makefile.config +include ../Makefile.rules + +SRC_CONSOLE:= console/console.cpp console/main.cpp console/vram.cpp +SRC_FLOPPY:= floppy/floppy.cpp +SRC_IDE:= ide/ide.cpp ide/main.cpp +SRC_INIT:= init/init.cpp +SRC_KLOG:= klog/klog.cpp +SRC_PCI:= pci/pci.cpp +SRC_PS2:= ps2/controller.cpp ps2/keyboard.cpp ps2/mouse.cpp +SRC_SERIAL:= serial/serial.cpp +SRC_VFS:= vfs/vfs.cpp +SRC_NET:= net/net.cpp net/ethernet.cpp net/arp.cpp net/ip.cpp net/tcp.cpp net/udp.cpp net/dhcp.cpp net/dns.cpp +SRC_PCNET:= net/pcnet/pcnet.cpp +SRC_RTL8139:= net/rtl8139/rtl8139.cpp +SRC_FS:= fs/file.cpp fs/directory.cpp fs/filesystem.cpp +SRC_DEVFS:= fs/devfs/block.cpp fs/devfs/devfs.cpp +SRC_EXT2:= fs/ext2/file.cpp fs/ext2/ext2.cpp +SRC_FAT:= fs/fat/file.cpp fs/fat/fat.cpp +SRC_ISO9660:= fs/iso9660/file.cpp fs/iso9660/iso9660.cpp +SRC_PIPEFS:= fs/pipefs/pipefs.cpp fs/pipefs/block.cpp +SRC_TMPFS:= fs/tmpfs/tmpfs.cpp fs/tmpfs/block.cpp +SRC:= $(SRC_CONSOLE) $(SRC_FLOPPY) $(SRC_IDE) $(SRC_INIT) $(SRC_KLOG) $(SRC_PCI) $(SRC_PS2) $(SRC_SERIAL) $(SRC_VFS) \ + $(SRC_NET) $(SRC_PCNET) $(SRC_RTL8139) $(SRC_FS) $(SRC_DEVFS) $(SRC_EXT2) $(SRC_FAT) $(SRC_ISO9660) $(SRC_PIPEFS) \ + $(SRC_TMPFS) +OBJ_CONSOLE:= $(SRC_CONSOLE:%.cpp=$(TMP_SERVER)/%.o) +OBJ_FLOPPY:= $(SRC_FLOPPY:%.cpp=$(TMP_SERVER)/%.o) +OBJ_IDE:= $(SRC_IDE:%.cpp=$(TMP_SERVER)/%.o) +OBJ_INIT:= $(SRC_INIT:%.cpp=$(TMP_SERVER)/%.o) +OBJ_KLOG:= $(SRC_KLOG:%.cpp=$(TMP_SERVER)/%.o) +OBJ_PCI:= $(SRC_PCI:%.cpp=$(TMP_SERVER)/%.o) +OBJ_PS2:= $(SRC_PS2:%.cpp=$(TMP_SERVER)/%.o) +OBJ_SERIAL:= $(SRC_SERIAL:%.cpp=$(TMP_SERVER)/%.o) +OBJ_VFS:= $(SRC_VFS:%.cpp=$(TMP_SERVER)/%.o) +OBJ_NET:= $(SRC_NET:%.cpp=$(TMP_SERVER)/%.o) +OBJ_PCNET:= $(SRC_PCNET:%.cpp=$(TMP_SERVER)/%.o) +OBJ_RTL8139:= $(SRC_RTL8139:%.cpp=$(TMP_SERVER)/%.o) +OBJ_FS:= $(SRC_FS:%.cpp=$(TMP_SERVER)/%.o) +OBJ_DEVFS:= $(SRC_DEVFS:%.cpp=$(TMP_SERVER)/%.o) $(OBJ_FS) +OBJ_EXT2:= $(SRC_EXT2:%.cpp=$(TMP_SERVER)/%.o) $(OBJ_FS) +OBJ_FAT:= $(SRC_FAT:%.cpp=$(TMP_SERVER)/%.o) $(OBJ_FS) +OBJ_ISO9660:= $(SRC_ISO9660:%.cpp=$(TMP_SERVER)/%.o) $(OBJ_FS) +OBJ_PIPEFS:= $(SRC_PIPEFS:%.cpp=$(TMP_SERVER)/%.o) $(OBJ_FS) +OBJ_TMPFS:= $(SRC_TMPFS:%.cpp=$(TMP_SERVER)/%.o) $(OBJ_FS) +OBJ_CPP:= $(SRC_CPP:%.cpp=$(TMP_SERVER)/%.o) +OBJ:= $(SRC:%.cpp=$(TMP_SERVER)/%.o) +DEPS:= $(SRC:%.cpp=%.dep) +LIBS:= --start-group $(LIBGCC) $(LIBLIGHTOSPP) $(LIBCPP) $(LIBC) $(LIBLIGHTOS) --end-group + +-include $(DEPS) + +all: $(BUILD)/$(ARCH)/system/server/console \ + $(BUILD)/$(ARCH)/system/server/floppy \ + $(BUILD)/$(ARCH)/system/server/ide \ + $(BUILD)/$(ARCH)/system/server/init \ + $(BUILD)/$(ARCH)/system/server/klog \ + $(BUILD)/$(ARCH)/system/server/pci \ + $(BUILD)/$(ARCH)/system/server/ps2 \ + $(BUILD)/$(ARCH)/system/server/serial \ + $(BUILD)/$(ARCH)/system/server/vfs \ + $(BUILD)/$(ARCH)/system/server/net \ + $(BUILD)/$(ARCH)/system/server/pcnet \ + $(BUILD)/$(ARCH)/system/server/rtl8139 \ + $(BUILD)/$(ARCH)/system/server/devfs \ + $(BUILD)/$(ARCH)/system/server/ext2 \ + $(BUILD)/$(ARCH)/system/server/fat \ + $(BUILD)/$(ARCH)/system/server/iso9660 \ + $(BUILD)/$(ARCH)/system/server/pipefs \ + $(BUILD)/$(ARCH)/system/server/tmpfs + +$(BUILD)/$(ARCH)/system/server/console: $(OBJ_CONSOLE) + @echo " LD server/console" + @$(LD) $(LD_FLAGS) -T $(LDSCRIPT_CPP) -o $@ $(CRT0_CPP) $(OBJ_CONSOLE) $(LIBS) + +$(BUILD)/$(ARCH)/system/server/floppy: $(OBJ_FLOPPY) + @echo " LD server/floppy" + @$(LD) $(LD_FLAGS) -T $(LDSCRIPT_CPP) -o $@ $(CRT0_CPP) $(OBJ_FLOPPY) $(LIBS) + +$(BUILD)/$(ARCH)/system/server/ide: $(OBJ_IDE) + @echo " LD server/ide" + @$(LD) $(LD_FLAGS) -T $(LDSCRIPT_CPP) -o $@ $(CRT0_CPP) $(OBJ_IDE) $(LIBS) + +$(BUILD)/$(ARCH)/system/server/init: $(OBJ_INIT) + @echo " LD server/init" + @$(LD) $(LD_FLAGS) -T $(LDSCRIPT_CPP) -o $@ $(CRT0_CPP) $(OBJ_INIT) $(LIBS) + +$(BUILD)/$(ARCH)/system/server/klog: $(OBJ_KLOG) + @echo " LD server/klog" + @$(LD) $(LD_FLAGS) -T $(LDSCRIPT_CPP) -o $@ $(CRT0_CPP) $(OBJ_KLOG) $(LIBS) + +$(BUILD)/$(ARCH)/system/server/pci: $(OBJ_PCI) + @echo " LD server/pci" + @$(LD) $(LD_FLAGS) -T $(LDSCRIPT_CPP) -o $@ $(CRT0_CPP) $(OBJ_PCI) $(LIBS) + +$(BUILD)/$(ARCH)/system/server/ps2: $(OBJ_PS2) + @echo " LD server/ps2" + @$(LD) $(LD_FLAGS) -T $(LDSCRIPT_CPP) -o $@ $(CRT0_CPP) $(OBJ_PS2) $(LIBS) + +$(BUILD)/$(ARCH)/system/server/serial: $(OBJ_SERIAL) + @echo " LD server/serial" + @$(LD) $(LD_FLAGS) -T $(LDSCRIPT_CPP) -o $@ $(CRT0_CPP) $(OBJ_SERIAL) $(LIBS) + +$(BUILD)/$(ARCH)/system/server/vfs: $(OBJ_VFS) + @echo " LD server/vfs" + @$(LD) $(LD_FLAGS) -T $(LDSCRIPT_CPP) -o $@ $(CRT0_CPP) $(OBJ_VFS) $(LIBS) + +$(BUILD)/$(ARCH)/system/server/net: $(OBJ_NET) + @echo " LD server/net" + @$(LD) $(LD_FLAGS) -T $(LDSCRIPT_CPP) -o $@ $(CRT0_CPP) $(OBJ_NET) $(LIBS) + +$(BUILD)/$(ARCH)/system/server/pcnet: $(OBJ_PCNET) + @echo " LD server/pcnet" + @$(LD) $(LD_FLAGS) -T $(LDSCRIPT_CPP) -o $@ $(CRT0_CPP) $(OBJ_PCNET) $(LIBS) + +$(BUILD)/$(ARCH)/system/server/rtl8139: $(OBJ_RTL8139) + @echo " LD server/rtl8139" + @$(LD) $(LD_FLAGS) -T $(LDSCRIPT_CPP) -o $@ $(CRT0_CPP) $(OBJ_RTL8139) $(LIBS) + +$(BUILD)/$(ARCH)/system/server/devfs: $(OBJ_DEVFS) + @echo " LD server/devfs" + @$(LD) $(LD_FLAGS) -T $(LDSCRIPT_CPP) -o $@ $(CRT0_CPP) $(OBJ_DEVFS) $(LIBS) + +$(BUILD)/$(ARCH)/system/server/ext2: $(OBJ_EXT2) + @echo " LD server/ext2" + @$(LD) $(LD_FLAGS) -T $(LDSCRIPT_CPP) -o $@ $(CRT0_CPP) $(OBJ_EXT2) $(LIBS) + +$(BUILD)/$(ARCH)/system/server/fat: $(OBJ_FAT) + @echo " LD server/fat" + @$(LD) $(LD_FLAGS) -T $(LDSCRIPT_CPP) -o $@ $(CRT0_CPP) $(OBJ_FAT) $(LIBS) + +$(BUILD)/$(ARCH)/system/server/iso9660: $(OBJ_ISO9660) + @echo " LD server/iso9660" + @$(LD) $(LD_FLAGS) -T $(LDSCRIPT_CPP) -o $@ $(CRT0_CPP) $(OBJ_ISO9660) $(LIBS) + +$(BUILD)/$(ARCH)/system/server/pipefs: $(OBJ_PIPEFS) + @echo " LD server/pipefs" + @$(LD) $(LD_FLAGS) -T $(LDSCRIPT_CPP) -o $@ $(CRT0_CPP) $(OBJ_PIPEFS) $(LIBS) + +$(BUILD)/$(ARCH)/system/server/tmpfs: $(OBJ_TMPFS) + @echo " LD server/tmpfs" + @$(LD) $(LD_FLAGS) -T $(LDSCRIPT_CPP) -o $@ $(CRT0_CPP) $(OBJ_TMPFS) $(LIBS) + +$(OBJ): + @echo " C++ server/$(@:$(TMP_SERVER)/%.o=%.cpp)" + @$(CPP) $(CPP_FLAGS) -MD -MF $(@:$(TMP_SERVER)/%.o=%.dep) -MT $@ -c $(@:$(TMP_SERVER)/%.o=%.cpp) -o $@ + +clean: + @cd $(BUILD)/$(ARCH)/system/server && rm -f console floppy ide init klog pci ps2 serial vfs net pcnet rtl8139 devfs ext2 fat iso9660 pipefs tmpfs + @rm -f $(DEPS) $(OBJ) -- 2.11.4.GIT