source: trunk/kLdr/Makefile.kmk@ 2875

Last change on this file since 2875 was 2875, checked in by bird, 19 years ago

Got the stub loader working (but without stack allocation/switching).

  • Property svn:keywords set to Id
File size: 4.3 KB
RevLine 
[2826]1# $Id: Makefile.kmk 2875 2006-11-12 08:59:45Z bird $# $Id: Makefile.kmk 2875 2006-11-12 08:59:45Z bird $
[2821]2## @file
3#
4# kBuild Makefile for the kLdr.
5#
6# Copyright (c) 2006 knut st. osmundsen <bird@anduin.net>
7#
8#
9# This file is part of kLdr.
10#
11# kLdr is free software; you can redistribute it and/or modify
12# it under the terms of the GNU General Public License as published by
13# the Free Software Foundation; either version 2 of the License, or
14# (at your option) any later version.
15#
16# kLdr is distributed in the hope that it will be useful,
17# but WITHOUT ANY WARRANTY; without even the implied warranty of
18# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19# GNU General Public License for more details.
20#
21# You should have received a copy of the GNU General Public License
22# along with kLdr; if not, write to the Free Software
23# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
24#
25#
26
27
[2859]28DEPTH = ..
29include $(PATH_KBUILD)/header.kmk
30
31DEFAULT_PASSES := $(filter-out PACKING, $(DEFAULT_PASSES)) # annoying on windows.
32
[2821]33#
[2825]34# Template for testcases.
35#
36TEMPLATE_TST = Testcase template
37ifneq ($(filter win nt win32 win64,$(BUILD_TARGET)),)
38 TEMPLATE_TST_TOOL = VCC70
39 TEMPLATE_TST_CFLAGS = -W3 -Zi -Zl -MD
40 TEMPLATE_TST_CFLAGS.release = -O2
41 TEMPLATE_TST_ASFLAGS = -f win
42 TEMPLATE_TST_DEFS = __WIN__
[2861]43 TEMPLATE_TST_SDKS = WIN32SDK W2K3DDKX86
44 #TEMPLATE_SDKS.x86 = WIN32SDK W2K3DDKX86
45 #TEMPLATE_SDKS.amd64 = WIN64SDK W2K3DDKAMD64
[2825]46
47## @todo this is a kBuild bug!
48 TEMPLATE_TST_LIBS = \
49 $$(PATH_TOOL_VCC70_LIB)/msvcrt.lib
50else
51 ifneq ($(filter os2,$(BUILD_TARGET)),)
52 TEMPLATE_TST_TOOL = GCC3OMF
53 TEMPLATE_TST_ASFLAGS = -f obj
54 TEMPLATE_TST_LIBS = os2 gcc end
55 else
56 TEMPLATE_TST_TOOL = GCC3
57 TEMPLATE_TST_ASFLAGS = -f elf
58 TEMPLATE_TST_LIBS = gcc
59 endif
60 TEMPLATE_TST_CFLAGS = -Wall -pedantic -g
61 TEMPLATE_TST_CFLAGS.release = -O2
62 TEMPLATE_TST_LDFLAGS =
63endif
64TEMPLATE_TST_INCS = .
65
66
67#
68# The kLdr DLL.
69#
[2821]70DLLS = kLdr
71kLdr_ASTOOL = NASM
[2825]72ifneq ($(filter win nt win32 win64,$(BUILD_TARGET)),)
73 kLdr_TOOL = GCC3
74 kLdr_TOOL = VCC70
[2858]75 kLdr_CFLAGS = -W3 -Zl -ML
[2825]76 kLdr_ASFLAGS = -f win
[2858]77 kLdr_LDFLAGS = -Entry:DllMain@12 -Debug
[2825]78 kLdr_DEFS = __WIN__
[2861]79 # crap, this doesn't work right either:
80 #kLdr_SDKS = WIN32SDK W2K3DDKX86
81 kLdr_SDKS = W2K3DDKX86 WIN32SDK
82 #kLdr_SDKS.x86 = WIN32SDK W2K3DDKX86
83 #kLdr_SDKS.amd64 = WIN64SDK W2K3DDKAMD64
[2858]84 kLdr_LIBS = \
[2861]85 $$(PATH_TOOL_VCC70_LIB)/LIBC.lib \
86 $(PATH_SDK_W2K3DDKX86_LIB)/ntdll.lib
[2825]87else
88 ifneq ($(filter os2,$(BUILD_TARGET)),)
89 kLdr_TOOL = GCC3OMF
90 kLdr_ASFLAGS = -f obj
91 kLdr_LIBS = os2 gcc end
92 else
93 kLdr_TOOL = GCC3
94 kLdr_ASFLAGS = -f elf
95 kLdr_LIBS = gcc
96 endif
97 kLdr_CFLAGS = -Wall -pedantic
98 kLdr_LDFLAGS = -nostdlib
99endif
100kLdr_INCS = .
[2821]101kLdr_SOURCES = \
102 kLdr.c \
[2836]103 kLdrDyld.c \
104 kLdrDyldFind.c \
[2835]105 kLdrDyldMod.c \
[2846]106 kLdrDyldOS.c \
[2825]107 kLdrHlp.c \
108 kLdrHlpHeap.c \
109 kLdrRdr.c \
110 kLdrRdrFile.c \
[2827]111 kLdrMod.c \
[2854]112 kLdrModLX.c \
113 kLdrModPE.c
[2821]114kLdr_SOURCES.os2 = \
115 kLdr-os2.def \
116 kLdrA-os2.asm
[2833]117kLdr_SOURCES.win = \
118 kLdr-win.def \
119 kLdr-win.c
120kLdr_SOURCES.win32 = $(kLdr_SOURCES.win)
121kLdr_SOURCES.win64 = $(kLdr_SOURCES.win)
[2821]122
123#
124# The OS/2 stub program.
[2825]125#
126PROGRAMS.os2 = kLdrExeStub-os2
[2821]127kLdrExeStub-os2_TOOL = GCC3OMF
128kLdrExeStub-os2_ASTOOL = NASM
129kLdrExeStub-os2_ASFLAGS = -f obj
130kLdrExeStub-os2_LDFLAGS = -nostdlib
131kLdrExeStub-os2_LIBS = $(TARGET_kLdr)
132kLdrExeStub-os2_SOURCES = kLdrExeStub-os2.asm
[2825]133
[2874]134#
135# The Windows stub program.
136#
137PROGRAMS.win = kLdrExeStub-win
138PROGRAMS.win32 = kLdrExeStub-win
139PROGRAMS.win64 = kLdrExeStub-win
140kLdrExeStub-win_TOOL = VCC70
141kLdrExeStub-win_SDKS = WIN32SDK
142kLdrExeStub-win_INCS = .
143kLdrExeStub-win_DEFS = __WIN__
144kLdrExeStub-win_CFLAGS = -W3 -Zl
145kLdrExeStub-win_CFLAGS.debug = -Zi
[2875]146kLdrExeStub-win_LDFLAGS = -Entry:WindowsMain -SubSystem:Console -FIXED:NO
[2874]147kLdrExeStub-win_LIBS = $(TARGET_kLdr:.dll=.lib)
148kLdrExeStub-win_SOURCES = kLdrExeStub-win.c
149
150
[2821]151##
152## The (stub) utility.
[2825]153##
[2821]154#PROGRAMS = kLdrUtil
155
[2825]156
157#
158# Heap testcase.
159#
160PROGRAMS += tstkLdrHeap
161tstkLdrHeap_TEMPLATE = TST
162tstkLdrHeap_SOURCES = \
163 tstkLdrHeap.c \
164 kLdrHlp.c \
165 kLdrHlpHeap.c \
166
[2858]167#
168# Heap testcase.
169#
170PROGRAMS += tstkLdrMod
171tstkLdrMod_TEMPLATE = TST
172tstkLdrMod_SOURCES = \
173 tstkLdrMod.c
174ifneq ($(filter win win32 win64 nt,$(BUILD_TARGET)),)
175tstkLdrMod_LIBS = $(TARGET_kLdr:.dll=.lib)
176else
177tstkLdrMod_LIBS = $(TARGET_kLdr)
178endif
[2825]179
[2858]180
181
[2821]182# generate rules.
[2859]183include $(PATH_KBUILD)/footer.kmk
[2821]184
Note: See TracBrowser for help on using the repository browser.