From b7fd15bf4b6b086aacd7c6a6e811db67ebd3076a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A9=20van=20Geldorp?= Date: Wed, 23 Jul 2003 21:27:15 +0000 Subject: [PATCH] Set up for cross-compiling under Linux, patches by Vizzini svn path=/trunk/; revision=5234 --- freeldr/bootsect/Makefile | 54 ++++++++++------ freeldr/fdebug/Makefile | 31 +++++++-- freeldr/fdebug/fdebug.rc | 2 +- freeldr/freeldr/Makefile | 129 ++++++++++++++++++++++---------------- freeldr/install/Makefile | 26 ++++++-- 5 files changed, 160 insertions(+), 82 deletions(-) diff --git a/freeldr/bootsect/Makefile b/freeldr/bootsect/Makefile index fa6a788e04a..01637637273 100644 --- a/freeldr/bootsect/Makefile +++ b/freeldr/bootsect/Makefile @@ -17,13 +17,31 @@ # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # +# Windows is default host environment +ifeq ($(HOST),) +HOST = mingw32-windows +endif + +# +# Choose various options +# +ifeq ($(HOST),mingw32-linux) +RM = rm -f +CP = cp -f +MKDIR = mkdir +SEP = / +else RM = cmd /C del CP = copy /Y MKDIR = md +SEP = \$(EMPTY_VAR) +endif + NASM_CMD = nasm -BIN2C = ../tools/bin2c -TOOLSDIR = ../tools -BOOTCD_DIR = ..\..\bootcd +NFLAGS = -fwin32 -dwin32 +BIN2C = ..$(SEP)tools$(SEP)bin2c +TOOLSDIR = ..$(SEP)tools +BOOTCD_DIR = ..$(SEP)..$(SEP)bootcd .PHONY : clean bootcd @@ -35,46 +53,46 @@ $(BIN2C) : dosmbr.bin : dosmbr.asm @echo ===================================================== Assembling dosmbr - @$(NASM_CMD) -o dosmbr.bin -f bin dosmbr.asm + @$(NASM_CMD) $(NFLAGS) -o dosmbr.bin -f bin dosmbr.asm fat.bin : fat.asm $(BIN2C) @echo ===================================================== Assembling fat - @$(NASM_CMD) -o fat.bin -f bin fat.asm + @$(NASM_CMD) $(NFLAGS) -o fat.bin -f bin fat.asm @$(BIN2C) fat.bin fat.h fat_data fat32.bin : fat32.asm $(BIN2C) @echo ===================================================== Assembling fat32 - @$(NASM_CMD) -o fat32.bin -f bin fat32.asm + @$(NASM_CMD) $(NFLAGS) -o fat32.bin -f bin fat32.asm @$(BIN2C) fat32.bin fat32.h fat32_data isoboot.bin : isoboot.asm @echo ===================================================== Assembling isoboot - @$(NASM_CMD) -o isoboot.bin -f bin isoboot.asm + @$(NASM_CMD) $(NFLAGS) -o isoboot.bin -f bin isoboot.asm ext2.bin : ext2.asm @echo ===================================================== Assembling ext2 - @$(NASM_CMD) -o ext2.bin -f bin ext2.asm + @$(NASM_CMD) $(NFLAGS) -o ext2.bin -f bin ext2.asm @$(BIN2C) ext2.bin ext2.h ext2_data .PHONY : bootcd bootcd: bootcd_dirs isoboot.bin $(CP) isoboot.bin $(BOOTCD_DIR) - $(CP) dosmbr.bin $(BOOTCD_DIR)\disk\loader - $(CP) ext2.bin $(BOOTCD_DIR)\disk\loader - $(CP) fat.bin $(BOOTCD_DIR)\disk\loader - $(CP) fat32.bin $(BOOTCD_DIR)\disk\loader - $(CP) isoboot.bin $(BOOTCD_DIR)\disk\loader + $(CP) dosmbr.bin $(BOOTCD_DIR)$(SEP)disk$(SEP)loader + $(CP) ext2.bin $(BOOTCD_DIR)$(SEP)disk$(SEP)loader + $(CP) fat.bin $(BOOTCD_DIR)$(SEP)disk$(SEP)loader + $(CP) fat32.bin $(BOOTCD_DIR)$(SEP)disk$(SEP)loader + $(CP) isoboot.bin $(BOOTCD_DIR)$(SEP)disk$(SEP)loader .PHONY : bootcd_dirs bootcd_dirs: $(MKDIR) $(BOOTCD_DIR) - $(MKDIR) $(BOOTCD_DIR)\disk - $(MKDIR) $(BOOTCD_DIR)\disk\reactos - $(MKDIR) $(BOOTCD_DIR)\disk\install - $(MKDIR) $(BOOTCD_DIR)\disk\bootdisk - $(MKDIR) $(BOOTCD_DIR)\disk\loader + $(MKDIR) $(BOOTCD_DIR)$(SEP)disk + $(MKDIR) $(BOOTCD_DIR)$(SEP)disk$(SEP)reactos + $(MKDIR) $(BOOTCD_DIR)$(SEP)disk$(SEP)install + $(MKDIR) $(BOOTCD_DIR)$(SEP)disk$(SEP)bootdisk + $(MKDIR) $(BOOTCD_DIR)$(SEP)disk$(SEP)loader clean: @-$(RM) *.bin diff --git a/freeldr/fdebug/Makefile b/freeldr/fdebug/Makefile index 224294ec8c7..efcdfc4e1d2 100644 --- a/freeldr/fdebug/Makefile +++ b/freeldr/fdebug/Makefile @@ -18,9 +18,32 @@ # -CC = gcc -LD = ld -RM = cmd /C del +# Windows is default host environment +ifeq ($(HOST),) +HOST = mingw32-windows +endif + +# +# Choose various options +# +ifeq ($(HOST),mingw32-linux) +RM = rm -f +CP = cp -f +MKDIR = mkdir +SEP = / +CC = mingw32-gcc +LD = mingw32-ld +WINDRES = mingw32-windres +else +RM = cmd /C del +CP = copy /Y +MKDIR = md +SEP = \$(EMPTY_VAR) +CC = gcc +LD = ld +RM = cmd /C del +WINDRES = windres +endif FLAGS = -Wall @@ -36,7 +59,7 @@ fdebug.exe: $(OBJS) fdebug.res: fdebug.rc resource.h @echo ===================================================== Compiling $* - windres -o fdebug.res fdebug.rc -O coff + $(WINDRES) -o fdebug.res fdebug.rc -O coff fdebug.o: fdebug.c rs232.h @echo ===================================================== Compiling $* diff --git a/freeldr/fdebug/fdebug.rc b/freeldr/fdebug/fdebug.rc index 41f4affaef8..ab083cbbca8 100644 --- a/freeldr/fdebug/fdebug.rc +++ b/freeldr/fdebug/fdebug.rc @@ -31,7 +31,7 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US // Icon with lowest ID value placed first to ensure application icon // remains consistent on all systems. -IDI_FDEBUG ICON DISCARDABLE "fdebug.ICO" +IDI_FDEBUG ICON DISCARDABLE "fdebug.ico" ///////////////////////////////////////////////////////////////////////////// // diff --git a/freeldr/freeldr/Makefile b/freeldr/freeldr/Makefile index 18dd30621cd..a4d7b805377 100644 --- a/freeldr/freeldr/Makefile +++ b/freeldr/freeldr/Makefile @@ -17,6 +17,33 @@ # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # +# Windows is default host environment +ifeq ($(HOST),) +HOST = mingw32-windows +endif + +# +# Choose various options +# +ifeq ($(HOST),mingw32-linux) +RM = rm -f +CP = cp -f +CC = mingw32-gcc +LD = mingw32-ld +AR = mingw32-ar +NM = mingw32-nm +MKDIR = mkdir +SEP = / +else +RM = cmd /C del +CP = copy /Y +CC = gcc +LD = ld +AR = ar +NM = nm +MKDIR = md +SEP = / +endif ############################################# # CHANGE THESE FOR YOUR OUTPUT @@ -28,37 +55,33 @@ TARGET = i386 DEBUG = no OBJDIR = obj -OUTPUT_DIR = $(OBJDIR)/$(TARGET) +OUTPUT_DIR = $(OBJDIR)$(SEP)$(TARGET) -BOOTCD_DIR = ../../bootcd +BOOTCD_DIR = ..$(SEP)..$(SEP)bootcd ############################################# # COMPILER AND LINKER PROGRAMS # -TOOLSDIR = $(SRCDIR)/../tools +TOOLSDIR = $(SRCDIR)$(SEP)..$(SEP)tools -CC = gcc -LD = ld -AR = ar -NM = nm -RM = $(TOOLSDIR)/rdel -CP = $(TOOLSDIR)/rcopy -MKDIR = $(TOOLSDIR)/rmkdir -RMDIR = $(TOOLSDIR)/rrmdir +RM = $(TOOLSDIR)$(SEP)rdel +CP = $(TOOLSDIR)$(SEP)rcopy +MKDIR = $(TOOLSDIR)$(SEP)rmkdir +RMDIR = $(TOOLSDIR)$(SEP)rrmdir NASM_CMD = nasm OBJCOPY = objcopy -DEPTOOL = $(TOOLSDIR)/deptool -HOSTTOOL = $(TOOLSDIR)/hosttype +DEPTOOL = $(TOOLSDIR)$(SEP)deptool +HOSTTOOL = $(TOOLSDIR)$(SEP)hosttype TOOLS = $(DEPTOOL) $(HOSTTOOL) -HOST = $(shell $(HOSTTOOL)) +HOSTTYPE = $(shell $(HOSTTOOL)) #----------------------------------------------------------------------------------------------------- # TEST IF WE ARE IN THE TARGET DIRECTORY # IF NOT WE WILL CHANGE TO THE TARGET DIRECTORY AND RUN MAKE FROM THERE #----------------------------------------------------------------------------------------------------- -#ifeq (,$(filter $(CURDIR)/$(OUTPUT_DIR),$(notdir $(CURDIR)))) -ifneq ($(CURDIR), $(SRCDIR)/$(OUTPUT_DIR)) +#ifeq (,$(filter $(CURDIR)$(SEP)$(OUTPUT_DIR),$(notdir $(CURDIR)))) +ifneq ($(CURDIR), $(SRCDIR)$(SEP)$(OUTPUT_DIR)) SRCDIR = $(CURDIR) @@ -68,10 +91,10 @@ SRCDIR = $(CURDIR) # VARIABLE TO CHANGE TO TARGET DIRECTORY AND INVOKE MAKE FROM THERE # MAKETARGET = $(MAKE) --no-print-directory -C $(OUTPUT_DIR) \ - -f ../../Makefile SRCDIR=$(CURDIR) $(MAKECMDGOALS) + -f ..$(SEP)..$(SEP)Makefile SRCDIR=$(CURDIR) $(MAKECMDGOALS) .PHONY: CHANGE_TO_TARGET -CHANGE_TO_TARGET setupldr : BUILD_TOOLS $(OBJDIR) $(OBJDIR)/$(TARGET) +CHANGE_TO_TARGET setupldr : BUILD_TOOLS $(OBJDIR) $(OBJDIR)$(SEP)$(TARGET) @echo Calculating source file dependencies... +@$(MAKETARGET) @@ -83,9 +106,9 @@ $(OBJDIR): @echo Creating directory: $(OBJDIR) @$(MKDIR) $(OBJDIR) -$(OBJDIR)/$(TARGET): $(OBJDIR) - @echo Creating directory: $(OBJDIR)/$(TARGET) - @$(MKDIR) $(OBJDIR)/$(TARGET) +$(OBJDIR)$(SEP)$(TARGET): $(OBJDIR) + @echo Creating directory: $(OBJDIR)$(SEP)$(TARGET) + @$(MKDIR) $(OBJDIR)$(SEP)$(TARGET) Makefile : ; @@ -97,10 +120,10 @@ Makefile : ; .PHONY : clean clean: @$(MAKE) --no-print-directory -C $(TOOLSDIR) - @echo Cleaning directory $(OBJDIR)/$(TARGET) - @-$(RM) $(OBJDIR)/$(TARGET)/* - @echo Removing directory $(OBJDIR)/$(TARGET) - @-$(RMDIR) $(OBJDIR)/$(TARGET) + @echo Cleaning directory $(OBJDIR)$(SEP)$(TARGET) + @-$(RM) $(OBJDIR)$(SEP)$(TARGET)$(SEP)* + @echo Removing directory $(OBJDIR)$(SEP)$(TARGET) + @-$(RMDIR) $(OBJDIR)$(SEP)$(TARGET) @-$(RMDIR) $(OBJDIR) @echo Clean ALL done. @@ -112,20 +135,20 @@ bootcd : bootcd_dirs setup_loader boot_loader .PHONY : bootcd_dirs bootcd_dirs: $(MKDIR) $(BOOTCD_DIR) - $(MKDIR) $(BOOTCD_DIR)/disk - $(MKDIR) $(BOOTCD_DIR)/disk/reactos - $(MKDIR) $(BOOTCD_DIR)/disk/install - $(MKDIR) $(BOOTCD_DIR)/disk/bootdisk - $(MKDIR) $(BOOTCD_DIR)/disk/loader + $(MKDIR) $(BOOTCD_DIR)$(SEP)disk + $(MKDIR) $(BOOTCD_DIR)$(SEP)disk$(SEP)reactos + $(MKDIR) $(BOOTCD_DIR)$(SEP)disk$(SEP)install + $(MKDIR) $(BOOTCD_DIR)$(SEP)disk$(SEP)bootdisk + $(MKDIR) $(BOOTCD_DIR)$(SEP)disk$(SEP)loader .PHONY : boot_loader -boot_loader : $(OBJDIR)/$(TARGET)/freeldr.sys - $(CP) $(OBJDIR)/$(TARGET)/freeldr.sys $(BOOTCD_DIR)/disk/loader/freeldr.sys - $(CP) ../freeldr.ini $(BOOTCD_DIR)/disk/loader/freeldr.ini +boot_loader : $(OBJDIR)$(SEP)$(TARGET)$(SEP)freeldr.sys + $(CP) $(OBJDIR)$(SEP)$(TARGET)$(SEP)freeldr.sys $(BOOTCD_DIR)$(SEP)disk$(SEP)loader$(SEP)freeldr.sys + $(CP) ..$(SEP)freeldr.ini $(BOOTCD_DIR)$(SEP)disk$(SEP)loader$(SEP)freeldr.ini .PHONY : setup_loader -setup_loader : $(OBJDIR)/$(TARGET)/setupldr.sys - $(CP) $(OBJDIR)/$(TARGET)/setupldr.sys $(BOOTCD_DIR)/disk/reactos/setupldr.sys +setup_loader : $(OBJDIR)$(SEP)$(TARGET)$(SEP)setupldr.sys + $(CP) $(OBJDIR)$(SEP)$(TARGET)$(SEP)setupldr.sys $(BOOTCD_DIR)$(SEP)disk$(SEP)reactos$(SEP)setupldr.sys ############################################# @@ -154,7 +177,7 @@ COMPILER_DEFINES = -D__$(TARGET)__ $(COMPILER_DEBUG_DEFINES) ############################################# # INCLUDE DIRECTORY OPTIONS # -COMPILER_INCLUDES = -I$(SRCDIR)/include +COMPILER_INCLUDES = -I$(SRCDIR)$(SEP)include ############################################# # COMPILER FLAGS @@ -177,10 +200,10 @@ LFLAGS = $(LINKER_OPTIONS) ############################################# # NASM FLAGS # -ifeq ($(HOST), dos) +ifeq ($(HOSTTYPE), dos) NASMFLAGS = -f coff else - ifeq ($(HOST), win32) + ifeq ($(HOSTTYPE), win32) NASMFLAGS = -f win32 else NASMFLAGS = -f elf @@ -325,21 +348,21 @@ ALL_OBJS = $(COMMON_OBJS) \ ############################################# # SET THE VPATH SO MAKE CAN FIND THE SOURCE FILES # -VPATH = $(SRCDIR)/ \ - $(SRCDIR)/arch/$(TARGET) \ - $(SRCDIR)/rtl \ - $(SRCDIR)/fs \ - $(SRCDIR)/ui \ - $(SRCDIR)/reactos \ - $(SRCDIR)/comm \ - $(SRCDIR)/disk \ - $(SRCDIR)/mm \ - $(SRCDIR)/cache \ - $(SRCDIR)/inifile \ - $(SRCDIR)/inffile \ - $(SRCDIR)/video \ - $(SRCDIR)/math \ - $(SRCDIR)/include +VPATH = $(SRCDIR)$(SEP) \ + $(SRCDIR)$(SEP)arch$(SEP)$(TARGET) \ + $(SRCDIR)$(SEP)rtl \ + $(SRCDIR)$(SEP)fs \ + $(SRCDIR)$(SEP)ui \ + $(SRCDIR)$(SEP)reactos \ + $(SRCDIR)$(SEP)comm \ + $(SRCDIR)$(SEP)disk \ + $(SRCDIR)$(SEP)mm \ + $(SRCDIR)$(SEP)cache \ + $(SRCDIR)$(SEP)inifile \ + $(SRCDIR)$(SEP)inffile \ + $(SRCDIR)$(SEP)video \ + $(SRCDIR)$(SEP)math \ + $(SRCDIR)$(SEP)include ############################################# diff --git a/freeldr/install/Makefile b/freeldr/install/Makefile index b0773aa008e..927dd85f30b 100644 --- a/freeldr/install/Makefile +++ b/freeldr/install/Makefile @@ -17,10 +17,24 @@ # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # +# Windows is default host environment +ifeq ($(HOST),) +HOST = mingw32-windows +endif -CC = gcc -LD = ld -RM = cmd /C del +# +# Choose various options +# +ifeq ($(HOST),mingw32-linux) +RM = rm -f +SEP = / +else +RM = cmd /C del +SEP = \$(EMPTY_VAR) +endif + +CC = mingw32-gcc +LD = mingw32-ld FLAGS = -Wall @@ -30,10 +44,10 @@ LIBS = -lkernel32 .PHONY : clean -all: ../bootsect/fat.h ../bootsect/fat32.h install.exe +all: ..$(SEP)bootsect$(SEP)fat.h ..$(SEP)bootsect$(SEP)fat32.h install.exe -../bootsect/fat.h ../bootsect/fat32.h : - @$(MAKE) --no-print-directory -C ../bootsect +..$(SEP)bootsect$(SEP)fat.h ..$(SEP)bootsect$(SEP)fat32.h : + @$(MAKE) --no-print-directory -C ..$(SEP)bootsect install.exe: $(OBJS) @echo ===================================================== LINKING install