Move freeldr to reactos\boot\freeldr.

svn path=/trunk/; revision=12672
This commit is contained in:
Casper Hornstrup
2005-01-01 00:42:18 +00:00
parent 9311f8ddc4
commit a32ae2ed8f
179 changed files with 401 additions and 565 deletions
-3
View File
@@ -1,3 +0,0 @@
*.exe
*.bin
*.h
-413
View File
@@ -1,413 +0,0 @@
#
# FreeLoader
# Copyright (C) 1998-2002 Brian Palmer <[email protected]>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
#############################################
# CHANGE THESE FOR YOUR OUTPUT
#
TARGET = i386
ifeq ($(DEBUG),)
# Debugging information on (bigger binary)
#DEBUG = yes
# Debugging information off (smaller binary)
DEBUG = no
endif
OBJDIR = obj
OUTPUT_DIR = $(OBJDIR)/$(TARGET)
BOOTCD_DIR = ../../bootcd
#############################################
# COMPILER AND LINKER PROGRAMS
#
TOOLSDIR = $(SRCDIR)/../tools
RM = $(subst /,$(SEP),$(TOOLSDIR))$(SEP)rdel
CP = $(subst /,$(SEP),$(TOOLSDIR))$(SEP)rcopy
MKDIR = $(subst /,$(SEP),$(TOOLSDIR))$(SEP)rmkdir
RMDIR = $(subst /,$(SEP),$(TOOLSDIR))$(SEP)rrmdir
OBJCOPY = objcopy
NM = nm
OBJDUMP = objdump
DEPTOOL = $(subst /,$(SEP),$(TOOLSDIR))$(SEP)deptool
HOSTTOOL = $(subst /,$(SEP),$(TOOLSDIR))$(SEP)hosttype
TOOLS = $(DEPTOOL) $(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))
SRCDIR = $(CURDIR)
.SUFFIXES:
#############################################
# VARIABLE TO CHANGE TO TARGET DIRECTORY AND INVOKE MAKE FROM THERE
#
MAKETARGET = $(MAKE) --no-print-directory -C $(OUTPUT_DIR) \
-f ../../Makefile SRCDIR=$(CURDIR) $(MAKECMDGOALS)
.PHONY: CHANGE_TO_TARGET
CHANGE_TO_TARGET setupldr : BUILD_TOOLS $(OBJDIR) $(OBJDIR)/$(TARGET)
@echo Calculating source file dependencies...
+@$(MAKETARGET)
.PHONY: BUILD_TOOLS
BUILD_TOOLS:
@$(MAKE) --no-print-directory -C $(TOOLSDIR)
$(OBJDIR):
@echo Creating directory: $(OBJDIR)
@$(MKDIR) $(OBJDIR)
$(OBJDIR)/$(TARGET): $(OBJDIR)
@echo Creating directory: $(OBJDIR)/$(TARGET)
@$(MKDIR) $(OBJDIR)/$(TARGET)
Makefile : ;
% :: CHANGE_TO_TARGET
#############################################
.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)
@-$(RMDIR) $(OBJDIR)
@echo Clean ALL done.
#############################################
.PHONY : bootcd
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
.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
.PHONY : setup_loader
setup_loader : $(OBJDIR)/$(TARGET)/setupldr.sys
$(CP) $(OBJDIR)/$(TARGET)/setupldr.sys $(BOOTCD_DIR)/disk/loader/setupldr.sys
#############################################
#-----------------------------------------------------------------------------------------------------
# END MAGIC TARGET DIRECTORY CHANGE STUFF
#-----------------------------------------------------------------------------------------------------
else
#############################################
# COMPILER COMMAND LINE OPTIONS
#
COMPILER_OPTIONS = -Wall -Werror -nostdlib -nostdinc -ffreestanding -fno-builtin -fno-inline \
-fno-zero-initialized-in-bss -O1 -MD
# FreeLoader does not use any of the standard libraries, includes, or built-in functions
#############################################
# COMPILER DEFINES
#
ifeq ($(DEBUG),yes)
COMPILER_DEBUG_DEFINES = -DDEBUG
else
COMPILER_DEBUG_DEFINES =
endif
COMPILER_DEFINES = -D__$(TARGET)__ $(COMPILER_DEBUG_DEFINES)
#############################################
# INCLUDE DIRECTORY OPTIONS
#
COMPILER_INCLUDES = -I$(SRCDIR)/include
#############################################
# COMPILER FLAGS
#
CFLAGS = $(COMPILER_OPTIONS) \
$(COMPILER_DEFINES) \
$(COMPILER_INCLUDES)
#############################################
# LINKER COMMAND LINE OPTIONS
#
#LINKER_OPTIONS = -N -Ttext=0x8000 --oformat=binary -s
LINKER_OPTIONS = -N -Ttext=0x8000
#############################################
# LINKER FLAGS
#
LFLAGS = $(LINKER_OPTIONS)
#############################################
# NASM FLAGS
#
ifeq ($(HOSTTYPE), dos)
NASMFLAGS = -f coff
else
ifeq ($(HOSTTYPE), win32)
NASMFLAGS = -f win32
else
NASMFLAGS = -f elf
endif
endif
#############################################
# LIST ALL THE OBJECT FILE GROUPS
#
# fathelp.o must come first in the link line because it contains bootsector helper code
# arch.o must come second in the link line because it contains the startup code
ARCH_OBJS = fathelp.o \
arch.o \
i386idt.o \
i386trap.o \
i386cpu.o \
i386pnp.o \
boot.o \
linux.o \
mb.o \
i386rtl.o \
i386vid.o \
drvmap.o \
int386.o \
i386disk.o \
portio.o \
hardware.o \
hwacpi.o \
hwapm.o \
hwcpu.o \
hwpci.o \
archmach.o \
machpc.o \
machxbox.o \
pccons.o \
pcdisk.o \
pcmem.o \
pcrtc.o \
pcvideo.o \
xboxcons.o \
xboxdisk.o \
xboxfont.o \
xboxhw.o \
xboxmem.o \
xboxrtc.o \
xboxvideo.o \
_alloca.o # For Mingw32 builds
RTL_OBJS = print.o \
stdlib.o \
string.o \
list.o \
memcmp.o \
memcpy.o \
memmove.o \
memset.o
FS_OBJS = fs.o \
fat.o \
iso.o \
ext2.o \
ntfs.o \
fsrec.o
UI_OBJS = tui.o \
tuimenu.o \
ui.o \
gui.o
REACTOS_OBJS= arcname.o \
binhive.o \
registry.o
COMM_OBJS = rs232.o
DISK_OBJS = disk.o \
partition.o
MM_OBJS = mm.o \
meminit.o
CACHE_OBJS = cache.o \
blocklist.o
INIFILE_OBJS= inifile.o \
ini_init.o \
parse.o
INFFILE_OBJS= inffile.o
VIDEO_OBJS = video.o \
fade.o \
palette.o \
pixel.o \
bank.o
# libgcc2.o contains code (__udivdi3, __umoddi3) necessary to do
# 64-bit division on the i386 (and other 32-bit) architectures
# This code was taken from the GCC v3.1 source
MATH_OBJS = libgcc2.o
BASE_OBJS = freeldr.o \
debug.o \
multiboot.o \
version.o \
cmdline.o \
machine.o
FREELDR_OBJS= bootmgr.o \
drivemap.o \
miscboot.o \
options.o \
linuxboot.o \
oslist.o \
custom.o
ROSLDR_OBJS = reactos.o
SETUPLDR_OBJS= setupldr.o
COMMON_OBJS = $(ARCH_OBJS) \
$(RTL_OBJS) \
$(FS_OBJS) \
$(UI_OBJS) \
$(REACTOS_OBJS) \
$(COMM_OBJS) \
$(DISK_OBJS) \
$(MM_OBJS) \
$(CACHE_OBJS) \
$(VIDEO_OBJS) \
$(MATH_OBJS) \
$(BASE_OBJS)
SPECIAL_OBJS = $(INIFILE_OBJS) \
$(INFFILE_OBJS) \
$(FREELDR_OBJS) \
$(ROSLDR_OBJS) \
$(SETUPLDR_OBJS)
F_OBJS = $(COMMON_OBJS) \
$(INIFILE_OBJS) \
$(ROSLDR_OBJS) \
$(FREELDR_OBJS)
S_OBJS = $(COMMON_OBJS) \
$(INIFILE_OBJS) \
$(INFFILE_OBJS) \
$(SETUPLDR_OBJS)
#############################################
# ALL THE OBJECTS
#
ALL_OBJS = $(COMMON_OBJS) \
$(SPECIAL_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
#############################################
all : freeldr.sys setupldr.sys
@echo Make ALL done.
#############################################
freeldr.sys : $(ALL_OBJS)
@echo ===================================================== LINKING $@
@$(LD) $(LFLAGS) -o freeldr.exe $(F_OBJS)
ifeq ($(FULL_MAP),yes)
@$(OBJDUMP) -d -S freeldr.exe > freeldr.map
else
@$(NM) --numeric-sort freeldr.exe > freeldr.map
endif
@$(OBJCOPY) -O binary freeldr.exe freeldr.sys
#############################################
setupldr.sys : $(ALL_OBJS)
@echo ===================================================== LINKING $@
@$(LD) $(LFLAGS) -Map setupldr.map -o setupldr.exe $(S_OBJS)
ifeq ($(FULL_MAP),yes)
@$(OBJDUMP) -d -S setupldr.exe > setupldr.map
else
@$(NM) --numeric-sort setupldr.exe > setupldr.map
endif
@$(OBJCOPY) -O binary setupldr.exe setupldr.sys
#############################################
%.o :: %.c
@echo ===================================================== Compiling $*
@$(CC) $(CFLAGS) -o $@ -c $<
@$(DEPTOOL) $*.d
%.o :: %.S
@echo ===================================================== Assembling $*
@$(CC) $(CFLAGS) -o $@ -c $<
@$(DEPTOOL) $*.d
%.o :: %.asm
@echo ===================================================== Assembling $*
@$(NASM_CMD) $(NASMFLAGS) -o $@ $<
#############################################
# Include the automagically generated dependencies
-include $(ALL_OBJS:%.o=%.d)
#############################################
endif
-47
View File
@@ -1,47 +0,0 @@
.EXPORT_ALL_VARIABLES:
#
# Choose various options
#
ifeq ($(HOST),mingw32-linux)
NASM_FORMAT = win32
PREFIX = mingw32-
EXE_POSTFIX :=
EXE_PREFIX := ./
DLLTOOL = $(PREFIX)dlltool --as=$(PREFIX)as
NASM_CMD = nasm
DOSCLI =
FLOPPY_DIR = /mnt/floppy
SEP := /
PIPE :=
RM = rm -f
CP = cp -f
MKDIR = mkdir
endif
ifeq ($(HOST),mingw32-windows)
NASM_FORMAT = win32
PREFIX =
EXE_PREFIX :=
EXE_POSTFIX := .exe
DLLTOOL = $(PREFIX)dlltool --as=$(PREFIX)as
NASM_CMD = nasmw
DOSCLI = yes
FLOPPY_DIR = A:
SEP := \$(EMPTY_VAR)
PIPE := -pipe
RM = cmd /C del
CP = copy /Y
MKDIR = md
endif
NFLAGS = -fwin32 -dwin32
BIN2C = ..$(SEP)tools$(SEP)bin2c
TOOLSDIR = ..$(SEP)tools
CC = $(PREFIX)gcc
LD = $(PREFIX)ld
AR = $(PREFIX)ar
NM = $(PREFIX)nm
WINDRES = $(PREFIX)windres
+43 -42
View File
@@ -1,4 +1,4 @@
# $Id: Makefile,v 1.277 2004/12/30 18:31:43 ion Exp $
# $Id$
#
# Global makefile
#
@@ -23,6 +23,9 @@ else
IMPLIB = implib
endif
# Boot loaders
BOOT_LOADERS = freeldr
# Required to run the system
COMPONENTS = ntoskrnl
@@ -124,9 +127,8 @@ KERNEL_DRIVERS = $(DRIVERS_LIB) $(DEVICE_DRIVERS) $(INPUT_DRIVERS) $(FS_DRIVERS)
# Regression tests
REGTESTS = regtests
all: bootstrap $(COMPONENTS) $(REGTESTS) $(HALS) $(BUS) $(LIB_FSLIB) $(DLLS) $(SUBSYS) \
$(KERNEL_DRIVERS) $(SYS_APPS) $(SYS_SVC) \
$(APPS) $(EXT_MODULES)
all: bootstrap $(BOOT_LOADERS) $(COMPONENTS) $(REGTESTS) $(HALS) $(BUS) $(LIB_FSLIB) \
$(DLLS) $(SUBSYS) $(KERNEL_DRIVERS) $(SYS_APPS) $(SYS_SVC) $(APPS) $(EXT_MODULES)
bootstrap: dk implib iface_native iface_additional
@@ -136,21 +138,21 @@ depends: $(LIB_STATIC:%=%_depends) $(LIB_FSLIB:%=%_depends) msvcrt_depends $(DLL
$(SUBSYS:%=%_depends) $(SYS_SVC:%=%_depends) \
$(EXT_MODULES:%=%_depends) $(POSIX_LIBS:%=%_depends)
implib: hallib $(LIB_STATIC) $(COMPONENTS:%=%_implib) $(HALS:%=%_implib) $(BUS:%=%_implib) \
$(LIB_STATIC:%=%_implib) $(LIB_FSLIB:%=%_implib) msvcrt_implib $(DLLS:%=%_implib) \
$(KERNEL_DRIVERS:%=%_implib) $(SUBSYS:%=%_implib) \
$(SYS_APPS:%=%_implib) $(SYS_SVC:%=%_implib) $(EXT_MODULES:%=%_implib) \
$(REGTESTS:%=%_implib)
implib: hallib $(LIB_STATIC) $(COMPONENTS:%=%_implib) $(HALS:%=%_implib) \
$(BUS:%=%_implib) $(LIB_STATIC:%=%_implib) $(LIB_FSLIB:%=%_implib) \
msvcrt_implib $(DLLS:%=%_implib) $(KERNEL_DRIVERS:%=%_implib) \
$(SUBSYS:%=%_implib) $(SYS_APPS:%=%_implib) $(SYS_SVC:%=%_implib) \
$(EXT_MODULES:%=%_implib) $(REGTESTS:%=%_implib)
test: $(COMPONENTS:%=%_test) $(HALS:%=%_test) $(BUS:%=%_test) \
test: $(BOOT_LOADERS:%=%_test) $(COMPONENTS:%=%_test) $(HALS:%=%_test) $(BUS:%=%_test) \
$(LIB_STATIC:%=%_test) $(LIB_FSLIB:%=%_test) msvcrt_test $(DLLS:%=%_test) \
$(KERNEL_DRIVERS:%=%_test) $(SUBSYS:%=%_test) \
$(SYS_SVC:%=%_test) $(EXT_MODULES:%=%_test)
clean: tools dk_clean iface_native_clean iface_additional_clean hallib_clean \
$(HALS:%=%_clean) $(COMPONENTS:%=%_clean) $(BUS:%=%_clean) \
$(LIB_STATIC:%=%_clean) $(LIB_FSLIB:%=%_clean) msvcrt_clean \
$(DLLS:%=%_clean) $(KERNEL_DRIVERS:%=%_clean) \
$(BOOT_LOADERS:%=%_clean) $(HALS:%=%_clean) $(COMPONENTS:%=%_clean) \
$(BUS:%=%_clean) $(LIB_STATIC:%=%_clean) $(LIB_FSLIB:%=%_clean) \
msvcrt_clean $(DLLS:%=%_clean) $(KERNEL_DRIVERS:%=%_clean) \
$(SUBSYS:%=%_clean) $(SYS_APPS:%=%_clean) $(SYS_SVC:%=%_clean) \
$(NET_APPS:%=%_clean) $(APPS:%=%_clean) $(EXT_MODULES:%=%_clean) \
$(REGTESTS:%=%_clean) clean_after tools_clean
@@ -159,18 +161,14 @@ clean_after:
$(HALFVERBOSEECHO) [RM] /include/roscfg.h
$(RM) $(PATH_TO_TOP)/include/roscfg.h
fastinstall: tools install_dirs install_before \
$(COMPONENTS:%=%_install) $(HALS:%=%_install) $(BUS:%=%_install) \
$(LIB_STATIC:%=%_install) $(LIB_FSLIB:%=%_install) msvcrt_install $(DLLS:%=%_install) \
$(KERNEL_DRIVERS:%=%_install) $(SUBSYS:%=%_install) \
$(SYS_APPS:%=%_install) $(SYS_SVC:%=%_install) \
fastinstall: tools install_dirs install_before $(COMPONENTS:%=%_install) $(HALS:%=%_install) \
$(BUS:%=%_install) $(LIB_STATIC:%=%_install) $(LIB_FSLIB:%=%_install) \
msvcrt_install $(DLLS:%=%_install) $(KERNEL_DRIVERS:%=%_install) \
$(SUBSYS:%=%_install) $(SYS_APPS:%=%_install) $(SYS_SVC:%=%_install) \
$(APPS:%=%_install) $(EXT_MODULES:%=%_install) $(REGTESTS:%=%_install)
install: fastinstall registry
FREELDR_DIR = ../freeldr
freeldr:
$(MAKE) -C $(FREELDR_DIR)
FREELDR_DIR = boot/freeldr
bootcd_directory_layout:
$(HALFVERBOSEECHO) [RMKDIR] $(BOOTCD_DIR)
@@ -183,26 +181,11 @@ bootcd_directory_layout:
$(RMKDIR) $(BOOTCD_DIR)/reactos
$(HALFVERBOSEECHO) [RMKDIR] $(BOOTCD_DIR)/reactos/system32
$(RMKDIR) $(BOOTCD_DIR)/reactos/system32
$(HALFVERBOSEECHO) [COPY] ${FREELDR_DIR}/bootsect/isoboot.bin to ${BOOTCD_DIR}/../isoboot.bin
$(CP) ${FREELDR_DIR}/bootsect/isoboot.bin ${BOOTCD_DIR}/../isoboot.bin
$(HALFVERBOSEECHO) [COPY] ${FREELDR_DIR}/bootsect/dosmbr.bin to ${BOOTCD_DIR}/loader/dosmbr.bin
$(CP) ${FREELDR_DIR}/bootsect/dosmbr.bin ${BOOTCD_DIR}/loader/dosmbr.bin
$(HALFVERBOSEECHO) [COPY] ${FREELDR_DIR}/bootsect/ext2.bin to ${BOOTCD_DIR}/loader/ext2.bin
$(CP) ${FREELDR_DIR}/bootsect/ext2.bin ${BOOTCD_DIR}/loader/ext2.bin
$(HALFVERBOSEECHO) [COPY] ${FREELDR_DIR}/bootsect/fat.bin to ${BOOTCD_DIR}/loader/fat.bin
$(CP) ${FREELDR_DIR}/bootsect/fat.bin ${BOOTCD_DIR}/loader/fat.bin
$(HALFVERBOSEECHO) [COPY] ${FREELDR_DIR}/bootsect/fat32.bin to ${BOOTCD_DIR}/loader/fat32.bin
$(CP) ${FREELDR_DIR}/bootsect/fat32.bin ${BOOTCD_DIR}/loader/fat32.bin
$(HALFVERBOSEECHO) [COPY] ${FREELDR_DIR}/bootsect/isoboot.bin to ${BOOTCD_DIR}/loader/isoboot.bin
$(CP) ${FREELDR_DIR}/bootsect/isoboot.bin ${BOOTCD_DIR}/loader/isoboot.bin
$(HALFVERBOSEECHO) [COPY] ${FREELDR_DIR}/freeldr/obj/i386/freeldr.sys to ${BOOTCD_DIR}/loader/freeldr.sys
$(CP) ${FREELDR_DIR}/freeldr/obj/i386/freeldr.sys ${BOOTCD_DIR}/loader/freeldr.sys
$(HALFVERBOSEECHO) [COPY] ${FREELDR_DIR}/freeldr/obj/i386/setupldr.sys to ${BOOTCD_DIR}/loader/setupldr.sys
$(CP) ${FREELDR_DIR}/freeldr/obj/i386/setupldr.sys ${BOOTCD_DIR}/loader/setupldr.sys
bootcd_bootstrap_files: $(COMPONENTS:%=%_bootcd) $(HALS:%=%_bootcd) $(BUS:%=%_bootcd) \
$(LIB_STATIC:%=%_bootcd) $(LIB_FSLIB:%=%_bootcd) msvcrt_bootcd $(DLLS:%=%_bootcd) \
$(KERNEL_DRIVERS:%=%_bootcd) $(SUBSYS:%=%_bootcd) $(SYS_APPS:%=%_bootcd)
bootcd_bootstrap_files: $(BOOT_LOADERS:%=%_bootcd) $(COMPONENTS:%=%_bootcd) \
$(HALS:%=%_bootcd) $(BUS:%=%_bootcd) $(LIB_STATIC:%=%_bootcd) \
$(LIB_FSLIB:%=%_bootcd) msvcrt_bootcd $(DLLS:%=%_bootcd) \
$(KERNEL_DRIVERS:%=%_bootcd) $(SUBSYS:%=%_bootcd) $(SYS_APPS:%=%_bootcd)
bootcd_install_before:
$(HALFVERBOSEECHO) [RLINE] bootdata/autorun.inf to $(BOOTCD_DIR)/autorun.inf
@@ -288,10 +271,28 @@ livecd: livecd_basic livecd_makecd
registry: tools
$(MKHIVE) bootdata $(INSTALL_DIR)/system32/config bootdata/hiveinst.inf
.PHONY: all bootstrap depends implib test clean clean_before install freeldr bootcd_directory_layout \
.PHONY: all bootstrap depends implib test clean clean_before install bootcd_directory_layout \
bootcd_bootstrap_files bootcd_install_before bootcd_basic bootcd_makecd ubootcd_unattend bootcd
#
# Boot Loaders
#
$(BOOT_LOADERS): %:
$(MAKE) -C boot/$*
$(BOOT_LOADERS:%=%_test): %_test:
$(MAKE) -C boot/$* test
$(BOOT_LOADERS:%=%_clean): %_clean:
$(MAKE) -C boot/$* clean
$(BOOT_LOADERS:%=%_bootcd): %_bootcd:
$(MAKE) -C boot/$* bootcd
.PHONY: $(BOOT_LOADERS) $(BOOT_LOADERS:%=%_test) $(BOOT_LOADERS:%=%_clean) \
$(BOOT_LOADERS:%=%_bootcd)
$(COMPONENTS): dk
#
@@ -17,10 +17,7 @@
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
# Windows is default host environment
ifeq ($(HOST),)
HOST = mingw32-windows
endif
PATH_TO_TOP = ../..
include rules.mak
@@ -31,10 +28,8 @@ all:
$(MAKE) -C install
$(MAKE) -C fdebug
freeldr:
$(MAKE) -C freeldr
.PHONY : freeldr
test:
clean:
$(MAKE) -C bootsect clean
$(MAKE) -C freeldr clean
@@ -42,4 +37,14 @@ clean:
$(MAKE) -C fdebug clean
$(MAKE) -C tools clean
bootcd:
$(CP) bootsect/isoboot.bin ${BOOTCD_DIR}/../isoboot.bin
$(CP) bootsect/dosmbr.bin ${BOOTCD_DIR}/loader/dosmbr.bin
$(CP) bootsect/ext2.bin ${BOOTCD_DIR}/loader/ext2.bin
$(CP) bootsect/fat.bin ${BOOTCD_DIR}/loader/fat.bin
$(CP) bootsect/fat32.bin ${BOOTCD_DIR}/loader/fat32.bin
$(CP) bootsect/isoboot.bin ${BOOTCD_DIR}/loader/isoboot.bin
$(CP) freeldr/freeldr.sys ${BOOTCD_DIR}/loader/freeldr.sys
$(CP) freeldr/setupldr.sys ${BOOTCD_DIR}/loader/setupldr.sys
.PHONY : clean
@@ -17,7 +17,11 @@
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
BOOTCD_DIR = ../../bootcd
PATH_TO_TOP = ../../..
include ../rules.mak
BOOTCD_DIR = $(PATH_TO_TOP)/../bootcd
.PHONY : clean bootcd
@@ -25,7 +29,7 @@ all: $(BIN2C) dosmbr.bin fat.bin fat32.bin isoboot.bin ext2.bin
$(BIN2C) :
@$(MAKE) --no-print-directory -C $(TOOLSDIR)
@$(MAKE) --no-print-directory -C $(FREELDR_TOOLS_PATH)
dosmbr.bin : dosmbr.asm
@echo ===================================================== Assembling dosmbr
@@ -16,7 +16,10 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
PATH_TO_TOP = ../../..
include ../rules.mak
FLAGS = -Wall
@@ -32,7 +35,7 @@ fdebug.exe: $(OBJS)
fdebug.res: fdebug.rc resource.h
@echo ===================================================== Compiling $*
$(WINDRES) -o fdebug.res fdebug.rc -O coff
$(RC) -o fdebug.res fdebug.rc -O coff
fdebug.o: fdebug.c rs232.h
@echo ===================================================== Compiling $*

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

+299
View File
@@ -0,0 +1,299 @@
#
# FreeLoader
# Copyright (C) 1998-2002 Brian Palmer <[email protected]>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
PATH_TO_TOP = ../../..
include ../rules.mak
TARGET = i386
ifeq ($(DEBUG),)
# Debugging information on (bigger binary)
#DEBUG = yes
# Debugging information off (smaller binary)
DEBUG = no
endif
SRCDIR = .
BOOTCD_DIR = $(PATH_TO_TOP)/bootcd
TOOLSDIR = $(SRCDIR)/../tools
DEPTOOL = $(subst /,$(SEP),$(FREELDR_TOOLS_PATH))$(SEP)deptool
TOOLS = $(DEPTOOL)
preall : all
.PHONY: BUILD_TOOLS
BUILD_TOOLS:
@$(MAKE) --no-print-directory -C $(FREELDR_TOOLS_PATH)
#############################################
.PHONY : clean
clean:
@-$(RM) $(ALL_OBJS)
@-$(RM) $(ALL_OBJS:.o=.d)
@-$(RM) freeldr.exe
@-$(RM) freeldr.sys
@-$(RM) freeldr.map
@-$(RM) setupldr.exe
@-$(RM) setupldr.sys
@-$(RM) setupldr.map
@$(MAKE) --no-print-directory -C $(FREELDR_TOOLS_PATH)
@echo Clean ALL done.
#############################################
.PHONY : bootcd
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
.PHONY : boot_loader
boot_loader : freeldr.sys
$(CP) freeldr.sys $(BOOTCD_DIR)/disk/loader/freeldr.sys
$(CP) ../freeldr.ini $(BOOTCD_DIR)/disk/loader/freeldr.ini
.PHONY : setup_loader
setup_loader : setupldr.sys
$(CP) setupldr.sys $(BOOTCD_DIR)/disk/loader/setupldr.sys
COMPILER_OPTIONS = -Wall -Werror -nostdlib -nostdinc -ffreestanding -fno-builtin -fno-inline \
-fno-zero-initialized-in-bss -O1 -MD
# FreeLoader does not use any of the standard libraries, includes, or built-in functions
ifeq ($(DEBUG),yes)
COMPILER_DEBUG_DEFINES = -DDEBUG
else
COMPILER_DEBUG_DEFINES =
endif
COMPILER_DEFINES = -D__$(TARGET)__ $(COMPILER_DEBUG_DEFINES)
COMPILER_INCLUDES = -I$(SRCDIR)/include
CFLAGS = $(COMPILER_OPTIONS) \
$(COMPILER_DEFINES) \
$(COMPILER_INCLUDES)
LINKER_OPTIONS = -N -Ttext=0x8000
LFLAGS = $(LINKER_OPTIONS)
ifeq ($(HOST),mingw32-linux)
NASMFLAGS = -f win32
else
NASMFLAGS = -f elf
endif
# fathelp.o must come first in the link line because it contains bootsector helper code
# arch.o must come second in the link line because it contains the startup code
ARCH_I386_OBJS = fathelp.o \
arch.o \
i386idt.o \
i386trap.o \
i386cpu.o \
i386pnp.o \
boot.o \
linux.o \
mb.o \
i386rtl.o \
i386vid.o \
drvmap.o \
int386.o \
i386disk.o \
portio.o \
hardware.o \
hwacpi.o \
hwapm.o \
hwcpu.o \
hwpci.o \
archmach.o \
machpc.o \
machxbox.o \
pccons.o \
pcdisk.o \
pcmem.o \
pcrtc.o \
pcvideo.o \
xboxcons.o \
xboxdisk.o \
xboxfont.o \
xboxhw.o \
xboxmem.o \
xboxrtc.o \
xboxvideo.o \
_alloca.o # For Mingw32 builds
ARCH_OBJS = $(addprefix i386/,$(ARCH_I386_OBJS))
RTL_OBJS = print.o \
stdlib.o \
string.o \
list.o \
memcmp.o \
memcpy.o \
memmove.o \
memset.o
FS_OBJS = fs.o \
fat.o \
iso.o \
ext2.o \
ntfs.o \
fsrec.o
UI_OBJS = tui.o \
tuimenu.o \
ui.o \
gui.o
REACTOS_OBJS = arcname.o \
binhive.o \
registry.o
COMM_OBJS = rs232.o
DISK_OBJS = disk.o \
partition.o
MM_OBJS = mm.o \
meminit.o
CACHE_OBJS = cache.o \
blocklist.o
INIFILE_OBJS = inifile.o \
ini_init.o \
parse.o
INFFILE_OBJS = inffile.o
VIDEO_OBJS = video.o \
fade.o \
palette.o \
pixel.o \
bank.o
# libgcc2.o contains code (__udivdi3, __umoddi3) necessary to do
# 64-bit division on the i386 (and other 32-bit) architectures
# This code was taken from the GCC v3.1 source
MATH_OBJS = libgcc2.o
BASE_OBJS = freeldr.o \
debug.o \
multiboot.o \
version.o \
cmdline.o \
machine.o
FREELDR_OBJS = bootmgr.o \
drivemap.o \
miscboot.o \
options.o \
linuxboot.o \
oslist.o \
custom.o
ROSLDR_OBJS = reactos.o
SETUPLDR_OBJS = setupldr.o
COMMON_OBJS = $(addprefix arch/,$(ARCH_OBJS)) \
$(addprefix rtl/,$(RTL_OBJS)) \
$(addprefix fs/,$(FS_OBJS)) \
$(addprefix ui/,$(UI_OBJS)) \
$(addprefix reactos/,$(REACTOS_OBJS)) \
$(addprefix comm/,$(COMM_OBJS)) \
$(addprefix disk/,$(DISK_OBJS)) \
$(addprefix mm/,$(MM_OBJS)) \
$(addprefix cache/,$(CACHE_OBJS)) \
$(addprefix video/,$(VIDEO_OBJS)) \
$(addprefix math/,$(MATH_OBJS)) \
$(BASE_OBJS)
SPECIAL_OBJS = $(addprefix inifile/,$(INIFILE_OBJS)) \
$(addprefix inffile/,$(INFFILE_OBJS)) \
$(FREELDR_OBJS) \
$(addprefix reactos/,$(ROSLDR_OBJS)) \
$(addprefix reactos/,$(SETUPLDR_OBJS))
F_OBJS = $(COMMON_OBJS) \
$(addprefix inifile/,$(INIFILE_OBJS)) \
$(addprefix reactos/,$(ROSLDR_OBJS)) \
$(FREELDR_OBJS)
S_OBJS = $(COMMON_OBJS) \
$(addprefix inifile/,$(INIFILE_OBJS)) \
$(addprefix inffile/,$(INFFILE_OBJS)) \
$(addprefix reactos/,$(SETUPLDR_OBJS))
ALL_OBJS = $(COMMON_OBJS) \
$(SPECIAL_OBJS)
all : freeldr.sys setupldr.sys
@echo Make ALL done.
freeldr.sys : $(ALL_OBJS)
@echo ===================================================== LINKING $@
@$(LD) $(LFLAGS) -o freeldr.exe $(F_OBJS)
ifeq ($(FULL_MAP),yes)
@$(OBJDUMP) -d -S freeldr.exe > freeldr.map
else
@$(NM) --numeric-sort freeldr.exe > freeldr.map
endif
@$(OBJCOPY) -O binary freeldr.exe freeldr.sys
setupldr.sys : $(ALL_OBJS)
@echo ===================================================== LINKING $@
@$(LD) $(LFLAGS) -Map setupldr.map -o setupldr.exe $(S_OBJS)
ifeq ($(FULL_MAP),yes)
@$(OBJDUMP) -d -S setupldr.exe > setupldr.map
else
@$(NM) --numeric-sort setupldr.exe > setupldr.map
endif
@$(OBJCOPY) -O binary setupldr.exe setupldr.sys
%.o :: %.c
@echo ===================================================== Compiling $*
@$(CC) $(CFLAGS) -o $@ -c $<
@$(DEPTOOL) $*.d
%.o :: %.S
@echo ===================================================== Assembling $*
@$(CC) $(CFLAGS) -o $@ -c $<
@$(DEPTOOL) $*.d
%.o :: %.asm
@echo ===================================================== Assembling $*
@$(NASM_CMD) $(NASMFLAGS) -o $@ $<
@@ -1,4 +1,4 @@
/* $Id: archmach.c,v 1.2 2004/11/09 23:36:19 gvg Exp $
/* $Id$
*
* FreeLoader
*
@@ -1,4 +1,4 @@
/* $Id: machpc.c,v 1.7 2004/11/28 22:42:40 gvg Exp $
/* $Id$
*
* FreeLoader
*
@@ -1,4 +1,4 @@
/* $Id: machpc.h,v 1.7 2004/11/28 22:42:40 gvg Exp $
/* $Id$
*
* FreeLoader
*
@@ -1,4 +1,4 @@
/* $Id: machxbox.c,v 1.7 2004/11/28 22:42:40 gvg Exp $
/* $Id$
*
* FreeLoader
*
@@ -1,4 +1,4 @@
/* $Id: machxbox.h,v 1.7 2004/11/28 22:42:40 gvg Exp $
/* $Id$
*
* FreeLoader
*
@@ -1,4 +1,4 @@
/* $Id: pccons.c,v 1.3 2004/11/14 22:04:38 gvg Exp $
/* $Id$
*
* FreeLoader
*
@@ -1,4 +1,4 @@
/* $Id: pcmem.c,v 1.2 2004/11/10 23:45:37 gvg Exp $
/* $Id$
*
* FreeLoader
*
@@ -1,4 +1,4 @@
/* $Id: pcrtc.c,v 1.1 2004/11/14 22:04:38 gvg Exp $
/* $Id$
*
* FreeLoader
*
@@ -1,4 +1,4 @@
/* $Id: pcvideo.c,v 1.3 2004/12/13 15:07:33 gvg Exp $
/* $Id$
*
* FreeLoader
*
@@ -1,4 +1,4 @@
/* $Id: portio.c,v 1.1 2003/01/19 01:03:58 bpalmer Exp $
/* $Id$
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
@@ -1,4 +1,4 @@
/* $Id: xboxcons.c,v 1.1 2004/11/14 22:04:38 gvg Exp $
/* $Id$
*
* FreeLoader
*
@@ -1,4 +1,4 @@
/* $Id: xboxdisk.c,v 1.3 2004/11/12 17:17:07 gvg Exp $
/* $Id$
*
* FreeLoader
*
@@ -1,4 +1,4 @@
/* $Id: xboxfont.c,v 1.2 2004/11/10 23:45:37 gvg Exp $
/* $Id$
*
* FreeLoader
*
@@ -1,4 +1,4 @@
/* $Id: xboxhw.c,v 1.1 2004/11/28 22:42:40 gvg Exp $
/* $Id$
*
* FreeLoader
*
@@ -1,4 +1,4 @@
/* $Id: xboxmem.c,v 1.3 2004/11/10 23:45:37 gvg Exp $
/* $Id$
*
* FreeLoader
*
@@ -1,4 +1,4 @@
/* $Id: xboxrtc.c,v 1.1 2004/11/14 22:04:38 gvg Exp $
/* $Id$
*
* FreeLoader
*
@@ -1,4 +1,4 @@
/* $Id: xboxvideo.c,v 1.5 2004/11/28 21:54:11 gvg Exp $
/* $Id$
*
* FreeLoader
*
@@ -1,4 +1,4 @@
/* $Id: cmdline.c,v 1.1 2004/11/01 20:49:32 gvg Exp $
/* $Id$
*
* FreeLoader
* Copyright (C) 1998-2003 Brian Palmer <brianp@sginet.com>
@@ -1,4 +1,4 @@
/* $Id: cmdline.h,v 1.1 2004/11/01 20:49:32 gvg Exp $
/* $Id$
*
* FreeLdr boot loader
* Copyright (C) 2002, 2003 ReactOS Team
@@ -16,7 +16,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/* $Id: inffile.h,v 1.1 2003/05/25 21:17:30 ekohl Exp $
/* $Id$
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS text-mode setup
* FILE: subsys/system/usetup/infcache.h

Some files were not shown because too many files have changed in this diff Show More