mirror of
https://github.com/reactos/reactos.git
synced 2024-12-28 10:04:49 +00:00
2004-10-02 Casper S. Hornstrup <chorns@users.sourceforge.net>
* tools/helper.mk: Support for kernel TARGET_TYPE. * ntoskrnl/Makefile: Simplified makefile. svn path=/trunk/; revision=11154
This commit is contained in:
parent
b8e59707a9
commit
cf4df378aa
3 changed files with 70 additions and 250 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
2004-10-02 Casper S. Hornstrup <chorns@users.sourceforge.net>
|
||||||
|
|
||||||
|
* tools/helper.mk: Support for kernel TARGET_TYPE.
|
||||||
|
* ntoskrnl/Makefile: Simplified makefile.
|
||||||
|
|
||||||
2004-10-02 Casper S. Hornstrup <chorns@users.sourceforge.net>
|
2004-10-02 Casper S. Hornstrup <chorns@users.sourceforge.net>
|
||||||
|
|
||||||
* lib/gdiplus/tests/.cvsignore: Ignore _hooks.c and _stubs.S.
|
* lib/gdiplus/tests/.cvsignore: Ignore _hooks.c and _stubs.S.
|
||||||
|
|
|
@ -1,28 +1,23 @@
|
||||||
# $Id: Makefile,v 1.144 2004/09/28 15:02:28 weiden Exp $
|
preall: all
|
||||||
#
|
|
||||||
# ReactOS Operating System
|
|
||||||
#
|
|
||||||
|
|
||||||
#
|
|
||||||
# Path to the directory containing the root makefile
|
|
||||||
#
|
|
||||||
PATH_TO_TOP := ..
|
PATH_TO_TOP := ..
|
||||||
|
|
||||||
#
|
|
||||||
# Include details of the host OS configuration
|
|
||||||
#
|
|
||||||
include $(PATH_TO_TOP)/config
|
include $(PATH_TO_TOP)/config
|
||||||
|
|
||||||
|
TARGET_TYPE = kernel
|
||||||
|
|
||||||
|
TARGET_NAME = ntoskrnl
|
||||||
|
|
||||||
|
TARGET_BASE = 0xc0000000
|
||||||
|
|
||||||
|
TARGET_BOOTSTRAP = yes
|
||||||
|
|
||||||
CONFIG :=
|
CONFIG :=
|
||||||
|
|
||||||
ifeq ($(DBG), 1)
|
ifeq ($(DBG), 1)
|
||||||
CFLAGS_DBG := -g
|
CFLAGS_DBG := -g
|
||||||
LINKER_SCRIPT := ntoskrnl.lnk
|
|
||||||
STRIP_FLAGS := -Wl,-s
|
|
||||||
else
|
else
|
||||||
CFLAGS_DBG :=
|
CFLAGS_DBG :=
|
||||||
LINKER_SCRIPT := ntoskrnl.lnk
|
|
||||||
STRIP_FLAGS := -Wl,-s
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(OPTIMIZED), 1)
|
ifeq ($(OPTIMIZED), 1)
|
||||||
|
@ -52,9 +47,6 @@ ASFLAGS += -I./include -I$(SDK_PATH_INC)
|
||||||
CFLAGS += -I./include -I$(SDK_PATH_INC) -D__NTOSKRNL__ $(CFLAGS_DBG) -Wall -Werror $(CFLAGS_OPT)
|
CFLAGS += -I./include -I$(SDK_PATH_INC) -D__NTOSKRNL__ $(CFLAGS_DBG) -Wall -Werror $(CFLAGS_OPT)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# ASFLAGS += -D__USE_W32API -D_NTOSKRNL_
|
|
||||||
# CFLAGS += -D__USE_W32API -D_NTOSKRNL_
|
|
||||||
|
|
||||||
# require os code to explicitly request A/W version of structs/functions
|
# require os code to explicitly request A/W version of structs/functions
|
||||||
CFLAGS += -D_DISABLE_TIDENTS
|
CFLAGS += -D_DISABLE_TIDENTS
|
||||||
|
|
||||||
|
@ -68,26 +60,16 @@ CFLAGS += $(STD_CFLAGS)
|
||||||
ASFLAGS += $(STD_ASFLAGS)
|
ASFLAGS += $(STD_ASFLAGS)
|
||||||
RCFLAGS += $(STD_RCFLAGS)
|
RCFLAGS += $(STD_RCFLAGS)
|
||||||
|
|
||||||
#
|
TARGET_CFLAGS = $(CFLAGS)
|
||||||
# Build configuration
|
TARGET_ASFLAGS = $(ASFLAGS)
|
||||||
#
|
TARGET_RCFLAGS = $(RCFLAGS)
|
||||||
include $(PATH_TO_TOP)/rules.mak
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Javascript extension for kdb
|
# Javascript extension for kdb
|
||||||
#
|
#
|
||||||
|
|
||||||
TARGETNAME := ntoskrnl
|
|
||||||
|
|
||||||
OBJECTS_PATH = objects
|
OBJECTS_PATH = objects
|
||||||
|
|
||||||
all: $(OBJECTS_PATH) \
|
|
||||||
bugcodes.rc $(PATH_TO_TOP)/include/reactos/bugcodes.h \
|
|
||||||
$(TARGETNAME).nostrip.exe \
|
|
||||||
$(TARGETNAME).exe \
|
|
||||||
$(TARGETNAME).sym \
|
|
||||||
ntoskrnl.map
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Architecture specific Makefile
|
# Architecture specific Makefile
|
||||||
# Defines $(OBJECTS_ARCH)
|
# Defines $(OBJECTS_ARCH)
|
||||||
|
@ -387,44 +369,21 @@ DEP_OBJECTS := $(OBJECTS_NT) $(OBJECTS_MM) $(OBJECTS_ARCH) \
|
||||||
$(OBJECTS_IO) $(OBJECTS_KE) $(OBJECTS_OB) \
|
$(OBJECTS_IO) $(OBJECTS_KE) $(OBJECTS_OB) \
|
||||||
$(OBJECTS_PS) $(OBJECTS_EX) $(OBJECTS_CC) $(OBJECTS_FS) $(OBJECTS_SE) \
|
$(OBJECTS_PS) $(OBJECTS_EX) $(OBJECTS_CC) $(OBJECTS_FS) $(OBJECTS_SE) \
|
||||||
$(OBJECTS_DBG) $(OBJECTS_CM) $(OBJECTS_LDR) $(OBJECTS_LPC) \
|
$(OBJECTS_DBG) $(OBJECTS_CM) $(OBJECTS_LDR) $(OBJECTS_LPC) \
|
||||||
$(OBJECTS_PO) $(OBJECTS_KD) $(OBJECTS_RTL)
|
$(OBJECTS_PO) $(OBJECTS_KD) $(OBJECTS_RTL) $(OBJECTS_INBV)
|
||||||
|
|
||||||
TAG_OBJECTS := $(join $(dir $(DEP_OBJECTS)),$(patsubst %.o, .%.TAG, $(notdir $(DEP_OBJECTS))))
|
TAG_OBJECTS := $(join $(dir $(DEP_OBJECTS)),$(patsubst %.o, .%.TAG, $(notdir $(DEP_OBJECTS))))
|
||||||
|
|
||||||
TARGET_PCH = include/ntoskrnl.h
|
TARGET_PCH = include/ntoskrnl.h
|
||||||
|
|
||||||
# Precompiled header support
|
|
||||||
# When using PCHs, use dependency tracking to keep the .gch files up-to-date.
|
|
||||||
|
|
||||||
MK_PCHNAME =
|
|
||||||
ifeq ($(ROS_USE_PCH),yes)
|
|
||||||
MK_PCHNAME = $(TARGET_PCH).gch
|
|
||||||
|
|
||||||
PCH_CC := $(CC)
|
|
||||||
|
|
||||||
|
|
||||||
endif # ROS_USE_PCH
|
|
||||||
|
|
||||||
#
|
|
||||||
# Include automatic dependancy tracking
|
|
||||||
#
|
|
||||||
DEP_EXCLUDE_FILTER := ex/napi.% nt/zw.%
|
|
||||||
GENERATED_HEADER_FILES := $(PATH_TO_TOP)/include/reactos/bugcodes.h
|
|
||||||
include $(PATH_TO_TOP)/tools/depend.mk
|
|
||||||
|
|
||||||
|
|
||||||
# Resources
|
# Resources
|
||||||
OBJECTS_RESOURCE = \
|
OBJECTS_RESOURCE = \
|
||||||
$(TARGETNAME).coff
|
$(TARGET_NAME).coff
|
||||||
|
|
||||||
# IMPORTS/EXPORTS
|
|
||||||
IE_DATA = \
|
|
||||||
$(TARGETNAME).def
|
|
||||||
|
|
||||||
$(OBJECTS_PATH):
|
$(OBJECTS_PATH):
|
||||||
mkdir $(OBJECTS_PATH)
|
mkdir $(OBJECTS_PATH)
|
||||||
|
|
||||||
$(OBJECTS_RESOURCE): $(TARGETNAME).rc bugcodes.rc $(PATH_TO_TOP)/include/reactos/resource.h
|
$(OBJECTS_RESOURCE): $(TARGET_NAME).rc bugcodes.rc $(PATH_TO_TOP)/include/reactos/resource.h
|
||||||
|
|
||||||
#
|
#
|
||||||
# Build subsystem intermediate objects
|
# Build subsystem intermediate objects
|
||||||
|
@ -563,211 +522,43 @@ OBJECTS := \
|
||||||
$(OBJECTS_PATH)/inbv.o \
|
$(OBJECTS_PATH)/inbv.o \
|
||||||
$(OBJECTS_RESOURCE)
|
$(OBJECTS_RESOURCE)
|
||||||
|
|
||||||
NTOSKRNL_LIBS := \
|
EXTRA_OBJECTS = $(PATH_TO_TOP)/include/reactos/bugcodes.h
|
||||||
|
|
||||||
|
TARGET_OBJECTS = $(EXTRA_OBJECTS) $(OBJECTS)
|
||||||
|
|
||||||
|
TARGET_LIBS = \
|
||||||
$(DDK_PATH_LIB)/hal.a \
|
$(DDK_PATH_LIB)/hal.a \
|
||||||
$(SDK_PATH_LIB)/rtl.a \
|
$(SDK_PATH_LIB)/rtl.a \
|
||||||
$(SDK_PATH_LIB)/string.a \
|
$(SDK_PATH_LIB)/string.a \
|
||||||
$(SDK_PATH_LIB)/rosrtl.a \
|
$(SDK_PATH_LIB)/rosrtl.a \
|
||||||
$(SDK_PATH_LIB)/pseh.a
|
$(SDK_PATH_LIB)/pseh.a
|
||||||
|
|
||||||
NTOSKRNL_LD_FLAGS := \
|
TARGET_LFLAGS = \
|
||||||
|
-Wl,-T,ntoskrnl.lnk \
|
||||||
-Wl,--subsystem,native \
|
-Wl,--subsystem,native \
|
||||||
-Wl,--image-base,0xc0000000 \
|
-Wl,--image-base,0xc0000000 \
|
||||||
-Wl,--file-alignment,0x1000 \
|
-Wl,--file-alignment,0x1000 \
|
||||||
-Wl,--section-alignment,0x1000 \
|
-Wl,--section-alignment,0x1000 \
|
||||||
-Wl,--entry,_NtProcessStartup
|
-Wl,--entry,_NtProcessStartup
|
||||||
|
|
||||||
$(TARGETNAME).nostrip.exe: $(TARGETNAME).all.o $(IE_DATA) $(NTOSKRNL_LIBS)
|
|
||||||
$(CC) \
|
|
||||||
-Wl,-T,ntoskrnl.lnk \
|
|
||||||
-nostartfiles \
|
|
||||||
-nostdlib \
|
|
||||||
-mdll \
|
|
||||||
-o junk.tmp \
|
|
||||||
$(NTOSKRNL_LD_FLAGS) \
|
|
||||||
-Wl,--base-file,base.tmp \
|
|
||||||
$(TARGETNAME).all.o -lgcc \
|
|
||||||
$(NTOSKRNL_LIBS)
|
|
||||||
- $(RM) junk.tmp
|
|
||||||
$(DLLTOOL) \
|
|
||||||
--dllname $(TARGETNAME).exe \
|
|
||||||
--base-file base.tmp \
|
|
||||||
--output-exp temp.exp \
|
|
||||||
--def $(TARGETNAME).def \
|
|
||||||
--kill-at
|
|
||||||
- $(RM) base.tmp
|
|
||||||
$(CC) \
|
|
||||||
-nostartfiles \
|
|
||||||
-nostdlib \
|
|
||||||
-Wl,-T,ntoskrnl.lnk \
|
|
||||||
-mdll \
|
|
||||||
-o $(TARGETNAME).nostrip.exe \
|
|
||||||
$(NTOSKRNL_LD_FLAGS) \
|
|
||||||
-Wl,temp.exp \
|
|
||||||
$(TARGETNAME).all.o -lgcc \
|
|
||||||
$(NTOSKRNL_LIBS)
|
|
||||||
- $(RM) temp.exp
|
|
||||||
|
|
||||||
$(TARGETNAME).exe: $(TARGETNAME).all.o $(LINKER_SCRIPT) $(NTOSKRNL_LIBS)
|
|
||||||
- $(CC) \
|
|
||||||
-Wl,-T,$(LINKER_SCRIPT) \
|
|
||||||
-nostartfiles \
|
|
||||||
-nostdlib \
|
|
||||||
-mdll \
|
|
||||||
-o junk.tmp \
|
|
||||||
$(NTOSKRNL_LD_FLAGS) \
|
|
||||||
-Wl,--base-file,base.tmp \
|
|
||||||
$(TARGETNAME).all.o -lgcc \
|
|
||||||
$(NTOSKRNL_LIBS)
|
|
||||||
- $(RM) junk.tmp
|
|
||||||
$(DLLTOOL) \
|
|
||||||
--dllname $(TARGETNAME).exe \
|
|
||||||
--base-file base.tmp \
|
|
||||||
--output-exp temp.exp \
|
|
||||||
--def $(TARGETNAME).def \
|
|
||||||
--kill-at
|
|
||||||
- $(RM) base.tmp
|
|
||||||
$(CC) \
|
|
||||||
-Wl,-T,$(LINKER_SCRIPT) $(STRIP_FLAGS)\
|
|
||||||
-nostartfiles \
|
|
||||||
-nostdlib \
|
|
||||||
-mdll \
|
|
||||||
-o $(TARGETNAME).exe \
|
|
||||||
$(NTOSKRNL_LD_FLAGS) \
|
|
||||||
-Wl,temp.exp \
|
|
||||||
$(TARGETNAME).all.o -lgcc \
|
|
||||||
$(NTOSKRNL_LIBS)
|
|
||||||
- $(RM) temp.exp
|
|
||||||
|
|
||||||
$(TARGETNAME).dbg.o: $(TARGETNAME).all.o
|
|
||||||
$(STRIP) --strip-debug -o $(TARGETNAME).dbg.o $(TARGETNAME).all.o
|
|
||||||
|
|
||||||
$(TARGETNAME).dbg: $(TARGETNAME).dbg.o $(TARGETNAME).a $(TARGETNAME).dbg.lnk $(NTOSKRNL_LIBS)
|
|
||||||
$(CC) \
|
|
||||||
-Wl,-T,$(TARGETNAME).dbg.lnk \
|
|
||||||
-nostartfiles \
|
|
||||||
-nostdlib \
|
|
||||||
-mdll \
|
|
||||||
-o junk.tmp \
|
|
||||||
$(NTOSKRNL_LD_FLAGS) \
|
|
||||||
-Wl,--base-file,base.tmp \
|
|
||||||
$(TARGETNAME).dbg.o -lgcc \
|
|
||||||
$(NTOSKRNL_LIBS)
|
|
||||||
- $(RM) junk.tmp
|
|
||||||
$(DLLTOOL) \
|
|
||||||
--dllname $(TARGETNAME).dbg \
|
|
||||||
--base-file base.tmp \
|
|
||||||
--output-exp temp.exp \
|
|
||||||
--def $(TARGETNAME).def \
|
|
||||||
--kill-at
|
|
||||||
- $(RM) base.tmp
|
|
||||||
$(CC) \
|
|
||||||
-Wl,-T,$(TARGETNAME).dbg.lnk \
|
|
||||||
-nostartfiles \
|
|
||||||
-nostdlib \
|
|
||||||
-mdll \
|
|
||||||
-o $(TARGETNAME).dbg \
|
|
||||||
$(NTOSKRNL_LD_FLAGS) \
|
|
||||||
-Wl,temp.exp \
|
|
||||||
$(TARGETNAME).dbg.o -lgcc \
|
|
||||||
$(NTOSKRNL_LIBS)
|
|
||||||
- $(RM) temp.exp
|
|
||||||
|
|
||||||
$(TARGETNAME).sym: $(TARGETNAME).nostrip.exe
|
|
||||||
$(RSYM) $(TARGETNAME).nostrip.exe $(TARGETNAME).sym
|
|
||||||
|
|
||||||
TAGS: $(TAG_OBJECTS)
|
TAGS: $(TAG_OBJECTS)
|
||||||
etags $(addprefix -i , $(TAG_OBJECTS))
|
etags $(addprefix -i , $(TAG_OBJECTS))
|
||||||
|
|
||||||
$(TARGETNAME).map: $(TARGETNAME).nostrip.exe
|
|
||||||
ifeq ($(FULL_MAP),yes)
|
|
||||||
$(OBJDUMP) -d -S $(TARGETNAME).nostrip.exe > $(TARGETNAME).map
|
|
||||||
else
|
|
||||||
$(NM) --numeric-sort $(TARGETNAME).nostrip.exe > $(TARGETNAME).map
|
|
||||||
endif
|
|
||||||
|
|
||||||
$(TARGETNAME).all.o: $(OBJECTS)
|
|
||||||
$(LD) \
|
|
||||||
-r \
|
|
||||||
-o $(TARGETNAME).all.o \
|
|
||||||
$(OBJECTS)
|
|
||||||
|
|
||||||
$(PATH_TO_TOP)/include/reactos/bugcodes.h bugcodes.rc: ntoskrnl.mc
|
$(PATH_TO_TOP)/include/reactos/bugcodes.h bugcodes.rc: ntoskrnl.mc
|
||||||
$(MC) \
|
$(MC) \
|
||||||
-H $(PATH_TO_TOP)/include/reactos/bugcodes.h \
|
-H $(PATH_TO_TOP)/include/reactos/bugcodes.h \
|
||||||
-o bugcodes.rc \
|
-o bugcodes.rc \
|
||||||
$(TARGETNAME).mc
|
$(TARGET_NAME).mc
|
||||||
|
|
||||||
$(DDK_PATH_LIB)/$(TARGETNAME).a: $(TARGETNAME).def
|
|
||||||
- $(DLLTOOL) \
|
|
||||||
--dllname $(TARGETNAME).exe \
|
|
||||||
--def $(TARGETNAME).def \
|
|
||||||
--output-lib $(DDK_PATH_LIB)/$(TARGETNAME).a \
|
|
||||||
--kill-at
|
|
||||||
|
|
||||||
implib: $(DDK_PATH_LIB)/$(TARGETNAME).a
|
|
||||||
|
|
||||||
test:
|
|
||||||
-
|
|
||||||
|
|
||||||
clean:
|
|
||||||
- $(RM) depend.d $(MK_PCHNAME) $(MK_PCHFAKE) $(OBJECTS_PATH)/*.o cc/*.o cm/*.o dbg/*.o dbg/i386/*.o ex/*.o \
|
|
||||||
ex/i386/*.o inbv/*.o io/*.o ke/*.o ldr/*.o mm/*.o nt/*.o ob/*.o \
|
|
||||||
ps/*.o ps/i386/*.o rtl/*.o rtl/i386/*.o se/*.o ke/i386/*.o \
|
|
||||||
mm/i386/*.o fs/*.o po/*.o lpc/*.o kd/*.o $(TARGETNAME).all.o \
|
|
||||||
junk.tmp base.tmp temp.exp $(TARGETNAME).exe \
|
|
||||||
$(TARGETNAME).nostrip.exe $(TARGETNAME).sym ntoskrnl.map \
|
|
||||||
$(TARGETNAME).coff bugcodes.rc msg?????.bin $(DEP_FILES) \
|
|
||||||
$(TAG_OBJECTS) $(PATH_TO_TOP)/include/reactos/bugcodes.h
|
|
||||||
|
|
||||||
|
|
||||||
.PHONY: clean
|
|
||||||
|
|
||||||
ifneq ($(BOOTCD_INSTALL),)
|
|
||||||
|
|
||||||
install:
|
|
||||||
- $(CP) $(TARGETNAME).exe $(INSTALL_DIR)/$(TARGETNAME).exe
|
|
||||||
|
|
||||||
else # BOOTCD_INSTALL
|
|
||||||
|
|
||||||
install:
|
|
||||||
- $(CP) $(TARGETNAME).exe $(INSTALL_DIR)/system32/$(TARGETNAME).exe
|
|
||||||
- $(CP) $(TARGETNAME).sym $(INSTALL_DIR)/symbols/$(TARGETNAME).sym
|
|
||||||
|
|
||||||
endif # BOOTCD_INSTALL
|
|
||||||
|
|
||||||
|
|
||||||
.PHONY: install
|
|
||||||
|
|
||||||
bootcd:
|
|
||||||
- $(CP) $(TARGETNAME).exe $(BOOTCD_DIR)/reactos/$(TARGETNAME).exe
|
|
||||||
|
|
||||||
.PHONY: bootcd
|
|
||||||
|
|
||||||
|
TARGET_CLEAN = \
|
||||||
|
$(PATH_TO_TOP)/include/reactos/bugcodes.h \
|
||||||
|
$(DEP_OBJECTS)
|
||||||
|
|
||||||
ex/napi.o: ex/napi.c $(PATH_TO_TOP)/include/ntdll/napi.h
|
ex/napi.o: ex/napi.c $(PATH_TO_TOP)/include/ntdll/napi.h
|
||||||
|
|
||||||
ke/main.o: ke/main.c $(PATH_TO_TOP)/include/reactos/buildno.h
|
ke/main.o: ke/main.c $(PATH_TO_TOP)/include/reactos/buildno.h
|
||||||
|
|
||||||
%.o: %.cc $(MK_PCHNAME)
|
|
||||||
$(CC) $(CFLAGS) -c $< -o $@
|
|
||||||
%.o: %.c $(MK_PCHNAME)
|
|
||||||
$(CC) $(CFLAGS) -c $< -o $@
|
|
||||||
%.o: %.S
|
|
||||||
$(AS) $(ASFLAGS) -c $< -o $@
|
|
||||||
%.o: %.s
|
|
||||||
$(AS) $(ASFLAGS) -c $< -o $@
|
|
||||||
%.o: %.asm
|
|
||||||
$(NASM_CMD) $(NFLAGS) $< -o $@
|
|
||||||
%.coff: %.rc
|
|
||||||
$(RC) $(RCFLAGS) $< -o $@
|
|
||||||
%.h.gch: %.h
|
|
||||||
$(PCH_CC) $(CFLAGS) $<
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
#
|
|
||||||
#
|
|
||||||
.%.TAG: %.S
|
.%.TAG: %.S
|
||||||
etags -o $@ $<
|
etags -o $@ $<
|
||||||
|
|
||||||
|
@ -783,5 +574,8 @@ docu:
|
||||||
|
|
||||||
.PHONY: docu
|
.PHONY: docu
|
||||||
|
|
||||||
|
include $(PATH_TO_TOP)/rules.mak
|
||||||
|
|
||||||
# EOF
|
include $(TOOLS_PATH)/helper.mk
|
||||||
|
|
||||||
|
include $(TOOLS_PATH)/depend.mk
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# $Id: helper.mk,v 1.81 2004/10/02 08:44:54 chorns Exp $
|
# $Id: helper.mk,v 1.82 2004/10/02 14:03:51 chorns Exp $
|
||||||
#
|
#
|
||||||
# Helper makefile for ReactOS modules
|
# Helper makefile for ReactOS modules
|
||||||
# Variables this makefile accepts:
|
# Variables this makefile accepts:
|
||||||
|
@ -18,6 +18,7 @@
|
||||||
# subsystem = Kernel subsystem
|
# subsystem = Kernel subsystem
|
||||||
# kmdll = Kernel mode DLL
|
# kmdll = Kernel mode DLL
|
||||||
# winedll = DLL imported from wine
|
# winedll = DLL imported from wine
|
||||||
|
# kernel = ReactOS kernel
|
||||||
# $TARGET_APPTYPE = Application type (windows,native,console).
|
# $TARGET_APPTYPE = Application type (windows,native,console).
|
||||||
# Required only for TARGET_TYPEs program and proglib
|
# Required only for TARGET_TYPEs program and proglib
|
||||||
# $TARGET_NAME = Base name of output file and .rc, .def, and .edf files
|
# $TARGET_NAME = Base name of output file and .rc, .def, and .edf files
|
||||||
|
@ -334,6 +335,24 @@ ifeq ($(TARGET_TYPE),gdi_driver)
|
||||||
MK_RES_BASE := $(TARGET_NAME)
|
MK_RES_BASE := $(TARGET_NAME)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(TARGET_TYPE),kernel)
|
||||||
|
MK_MODE := kernel
|
||||||
|
MK_EXETYPE := dll
|
||||||
|
MK_DEFEXT := .exe
|
||||||
|
MK_DEFENTRY := _NtProcessStartup
|
||||||
|
MK_DDKLIBS := hal.a
|
||||||
|
MK_SDKLIBS :=
|
||||||
|
MK_CFLAGS := -D__NTOSKRNL__ -I.
|
||||||
|
MK_CPPFLAGS := -D__NTOSKRNL__ -I.
|
||||||
|
MK_IMPLIB := yes
|
||||||
|
MK_IMPLIBONLY := no
|
||||||
|
MK_IMPLIBDEFPATH := $(DDK_PATH_LIB)
|
||||||
|
MK_IMPLIB_EXT := .a
|
||||||
|
MK_INSTALLDIR := system32
|
||||||
|
MK_BOOTCDDIR := .
|
||||||
|
MK_RES_BASE := $(TARGET_NAME)
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
# can be overidden with $(CXX) for linkage of c++ executables
|
# can be overidden with $(CXX) for linkage of c++ executables
|
||||||
LD_CC = $(CC)
|
LD_CC = $(CC)
|
||||||
|
@ -554,6 +573,10 @@ ifeq ($(MK_MODE),kernel)
|
||||||
MK_LIBS := $(addprefix $(DDK_PATH_LIB)/, $(TARGET_DDKLIBS) $(MK_DDKLIBS))
|
MK_LIBS := $(addprefix $(DDK_PATH_LIB)/, $(TARGET_DDKLIBS) $(MK_DDKLIBS))
|
||||||
MK_CFLAGS += -D_SEH_NO_NATIVE_NLG
|
MK_CFLAGS += -D_SEH_NO_NATIVE_NLG
|
||||||
MK_CPPFLAGS += -D_SEH_NO_NATIVE_NLG
|
MK_CPPFLAGS += -D_SEH_NO_NATIVE_NLG
|
||||||
|
MK_LFLAGS += -nostartfiles
|
||||||
|
ifneq ($(TARGET_TYPE),kernel)
|
||||||
|
MK_LFLAGS += -nostdlib
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
@ -592,6 +615,8 @@ TARGET_ASFLAGS += $(MK_ASFLAGS) $(STD_ASFLAGS)
|
||||||
|
|
||||||
TARGET_NFLAGS += $(MK_NFLAGS) $(STD_NFLAGS)
|
TARGET_NFLAGS += $(MK_NFLAGS) $(STD_NFLAGS)
|
||||||
|
|
||||||
|
TARGET_LFLAGS += $(MK_LFLAGS) $(STD_LFLAGS)
|
||||||
|
|
||||||
|
|
||||||
MK_GCCLIBS := $(addprefix -l, $(TARGET_GCCLIBS))
|
MK_GCCLIBS := $(addprefix -l, $(TARGET_GCCLIBS))
|
||||||
|
|
||||||
|
@ -609,6 +634,8 @@ MK_IMPLIB_FULLNAME := $(MK_BASENAME)$(MK_IMPLIB_EXT)
|
||||||
|
|
||||||
MK_NOSTRIPNAME := $(MK_BASENAME).nostrip$(MK_EXT)
|
MK_NOSTRIPNAME := $(MK_BASENAME).nostrip$(MK_EXT)
|
||||||
|
|
||||||
|
MK_EXTRADEP := $(filter %.h,$(TARGET_OBJECTS))
|
||||||
|
|
||||||
# We don't want to link header files
|
# We don't want to link header files
|
||||||
MK_OBJECTS := $(filter-out %.h,$(TARGET_OBJECTS))
|
MK_OBJECTS := $(filter-out %.h,$(TARGET_OBJECTS))
|
||||||
|
|
||||||
|
@ -646,7 +673,6 @@ $(MK_IMPLIBPATH)/$(MK_IMPLIB_FULLNAME): $(MK_OBJECTS) $(MK_DEFNAME)
|
||||||
--output-lib $(MK_IMPLIBPATH)/$(MK_BASENAME).a \
|
--output-lib $(MK_IMPLIBPATH)/$(MK_BASENAME).a \
|
||||||
--kill-at
|
--kill-at
|
||||||
|
|
||||||
|
|
||||||
else # MK_IMPLIBONLY
|
else # MK_IMPLIBONLY
|
||||||
|
|
||||||
all: $(REGTEST_TARGETS) $(MK_FULLNAME) $(MK_NOSTRIPNAME) $(SUBDIRS:%=%_all)
|
all: $(REGTEST_TARGETS) $(MK_FULLNAME) $(MK_NOSTRIPNAME) $(SUBDIRS:%=%_all)
|
||||||
|
@ -658,22 +684,22 @@ else
|
||||||
MK_EXTRACMD :=
|
MK_EXTRACMD :=
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
||||||
# User mode targets
|
# User mode targets
|
||||||
ifeq ($(MK_MODE),user)
|
ifeq ($(MK_MODE),user)
|
||||||
|
|
||||||
ifeq ($(MK_EXETYPE),dll)
|
ifeq ($(MK_EXETYPE),dll)
|
||||||
TARGET_LFLAGS += -mdll -Wl,--image-base,$(TARGET_BASE)
|
TARGET_LFLAGS += -mdll -Wl,--image-base,$(TARGET_BASE)
|
||||||
MK_EXTRADEP := $(MK_DEFNAME)
|
MK_EXTRADEP += $(MK_DEFNAME)
|
||||||
MK_EXTRACMD2 := -Wl,temp.exp
|
MK_EXTRACMD2 := -Wl,temp.exp
|
||||||
else
|
else
|
||||||
MK_EXTRADEP :=
|
|
||||||
MK_EXTRACMD2 :=
|
MK_EXTRACMD2 :=
|
||||||
endif
|
endif
|
||||||
|
|
||||||
$(MK_BASENAME).a: $(MK_OBJECTS)
|
$(MK_BASENAME).a: $(MK_OBJECTS)
|
||||||
$(AR) -r $(MK_BASENAME).a $(MK_OBJECTS)
|
$(AR) -r $(MK_BASENAME).a $(MK_OBJECTS)
|
||||||
|
|
||||||
$(MK_NOSTRIPNAME): $(MK_FULLRES) $(MK_BASENAME).a $(MK_EXTRADEP) $(MK_LIBS)
|
$(MK_NOSTRIPNAME): $(MK_EXTRADEP) $(MK_FULLRES) $(MK_BASENAME).a $(MK_LIBS)
|
||||||
ifeq ($(MK_EXETYPE),dll)
|
ifeq ($(MK_EXETYPE),dll)
|
||||||
$(LD_CC) -Wl,--base-file,base.tmp \
|
$(LD_CC) -Wl,--base-file,base.tmp \
|
||||||
-Wl,--entry,$(TARGET_ENTRY) \
|
-Wl,--entry,$(TARGET_ENTRY) \
|
||||||
|
@ -761,14 +787,12 @@ ifeq ($(MK_IMPLIB),yes)
|
||||||
MK_EXTRACMD := --def $(MK_DEFNAME)
|
MK_EXTRACMD := --def $(MK_DEFNAME)
|
||||||
else
|
else
|
||||||
MK_EXTRACMD :=
|
MK_EXTRACMD :=
|
||||||
MK_EXTRADEP :=
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
$(MK_NOSTRIPNAME): $(MK_FULLRES) $(MK_OBJECTS) $(MK_EXTRADEP) $(MK_LIBS)
|
$(MK_NOSTRIPNAME): $(MK_EXTRADEP) $(MK_FULLRES) $(MK_OBJECTS) $(MK_LIBS)
|
||||||
$(LD_CC) -Wl,--base-file,base.tmp \
|
$(LD_CC) -Wl,--base-file,base.tmp \
|
||||||
-Wl,--entry,$(TARGET_ENTRY) \
|
-Wl,--entry,$(TARGET_ENTRY) \
|
||||||
$(TARGET_LFLAGS) \
|
$(TARGET_LFLAGS) \
|
||||||
-nostartfiles -nostdlib \
|
|
||||||
-o junk.tmp \
|
-o junk.tmp \
|
||||||
$(MK_FULLRES) $(MK_OBJECTS) $(MK_LIBS) $(MK_GCCLIBS)
|
$(MK_FULLRES) $(MK_OBJECTS) $(MK_LIBS) $(MK_GCCLIBS)
|
||||||
- $(RM) junk.tmp
|
- $(RM) junk.tmp
|
||||||
|
@ -782,8 +806,7 @@ $(MK_NOSTRIPNAME): $(MK_FULLRES) $(MK_OBJECTS) $(MK_EXTRADEP) $(MK_LIBS)
|
||||||
-Wl,--file-alignment,0x1000 \
|
-Wl,--file-alignment,0x1000 \
|
||||||
-Wl,--section-alignment,0x1000 \
|
-Wl,--section-alignment,0x1000 \
|
||||||
-Wl,--entry,$(TARGET_ENTRY) \
|
-Wl,--entry,$(TARGET_ENTRY) \
|
||||||
-Wl,temp.exp \
|
-Wl,temp.exp -mdll \
|
||||||
-mdll -nostartfiles -nostdlib \
|
|
||||||
-o $(MK_NOSTRIPNAME) \
|
-o $(MK_NOSTRIPNAME) \
|
||||||
$(MK_FULLRES) $(MK_OBJECTS) $(MK_LIBS) $(MK_GCCLIBS)
|
$(MK_FULLRES) $(MK_OBJECTS) $(MK_LIBS) $(MK_GCCLIBS)
|
||||||
- $(RM) temp.exp
|
- $(RM) temp.exp
|
||||||
|
@ -794,7 +817,7 @@ else
|
||||||
$(NM) --numeric-sort $(MK_NOSTRIPNAME) > $(MK_BASENAME).map
|
$(NM) --numeric-sort $(MK_NOSTRIPNAME) > $(MK_BASENAME).map
|
||||||
endif
|
endif
|
||||||
|
|
||||||
$(MK_FULLNAME): $(MK_FULLRES) $(MK_OBJECTS) $(MK_EXTRADEP) $(MK_LIBS) $(MK_NOSTRIPNAME)
|
$(MK_FULLNAME): $(MK_EXTRADEP) $(MK_FULLRES) $(MK_OBJECTS) $(MK_LIBS) $(MK_NOSTRIPNAME)
|
||||||
-
|
-
|
||||||
ifneq ($(TARGET_CPPAPP),yes)
|
ifneq ($(TARGET_CPPAPP),yes)
|
||||||
$(LD) --strip-debug -r -o $(MK_STRIPPED_OBJECT) $(MK_OBJECTS)
|
$(LD) --strip-debug -r -o $(MK_STRIPPED_OBJECT) $(MK_OBJECTS)
|
||||||
|
@ -802,7 +825,6 @@ endif
|
||||||
$(LD_CC) -Wl,--base-file,base.tmp \
|
$(LD_CC) -Wl,--base-file,base.tmp \
|
||||||
-Wl,--entry,$(TARGET_ENTRY) \
|
-Wl,--entry,$(TARGET_ENTRY) \
|
||||||
$(TARGET_LFLAGS) \
|
$(TARGET_LFLAGS) \
|
||||||
-nostartfiles -nostdlib \
|
|
||||||
-o junk.tmp \
|
-o junk.tmp \
|
||||||
$(MK_FULLRES) $(MK_STRIPPED_OBJECT) $(MK_LIBS) $(MK_GCCLIBS)
|
$(MK_FULLRES) $(MK_STRIPPED_OBJECT) $(MK_LIBS) $(MK_GCCLIBS)
|
||||||
- $(RM) junk.tmp
|
- $(RM) junk.tmp
|
||||||
|
@ -816,8 +838,7 @@ endif
|
||||||
-Wl,--file-alignment,0x1000 \
|
-Wl,--file-alignment,0x1000 \
|
||||||
-Wl,--section-alignment,0x1000 \
|
-Wl,--section-alignment,0x1000 \
|
||||||
-Wl,--entry,$(TARGET_ENTRY) \
|
-Wl,--entry,$(TARGET_ENTRY) \
|
||||||
-Wl,temp.exp \
|
-Wl,temp.exp -mdll \
|
||||||
-mdll -nostartfiles -nostdlib \
|
|
||||||
-o $(MK_FULLNAME) \
|
-o $(MK_FULLNAME) \
|
||||||
$(MK_FULLRES) $(MK_STRIPPED_OBJECT) $(MK_LIBS) $(MK_GCCLIBS)
|
$(MK_FULLRES) $(MK_STRIPPED_OBJECT) $(MK_LIBS) $(MK_GCCLIBS)
|
||||||
ifneq ($(TARGET_CPPAPP),yes)
|
ifneq ($(TARGET_CPPAPP),yes)
|
||||||
|
|
Loading…
Reference in a new issue