source: trunk/kLdr/Makefile.kmk@ 2945

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

split up kLdrHlp.c and kLdr.c to make it more flexible (like using the module interpreters without the dynamic loader bit and similar).

  • Property svn:keywords set to Id
File size: 4.6 KB
Line 
1# $Id: Makefile.kmk 2944 2007-01-13 15:55:40Z bird $# $Id: Makefile.kmk 2944 2007-01-13 15:55:40Z bird $
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
28DEPTH = ..
29include $(PATH_KBUILD)/header.kmk
30
31DEFAULT_PASSES := $(filter-out PACKING, $(DEFAULT_PASSES)) # annoying on windows.
32
33#
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__
43 TEMPLATE_SDKS.x86 = WIN32SDK W2K3DDKX86
44 TEMPLATE_SDKS.amd64 = WIN64SDK W2K3DDKAMD64
45
46## @todo this is a kBuild bug? $$(PATH_TOOL_VCC70_LIB)
47 TEMPLATE_TST_LIBS = \
48 $$(PATH_TOOL_VCC70_LIB)/msvcrt.lib
49else
50 ifneq ($(filter os2,$(BUILD_TARGET)),)
51 TEMPLATE_TST_TOOL = GCC3OMF
52 TEMPLATE_TST_ASFLAGS = -f obj
53 TEMPLATE_TST_LIBS = os2 gcc end
54 else
55 TEMPLATE_TST_TOOL = GCC3
56 TEMPLATE_TST_ASFLAGS = -f elf
57 TEMPLATE_TST_LIBS = gcc
58 endif
59 TEMPLATE_TST_CFLAGS = -Wall -pedantic -g -std=gnu99
60 TEMPLATE_TST_CFLAGS.release = -O2
61 TEMPLATE_TST_LDFLAGS =
62endif
63TEMPLATE_TST_INCS = .
64
65
66#
67# The kLdr DLL.
68#
69DLLS = kLdr
70kLdr_ASTOOL = NASM
71ifneq ($(filter win nt win32 win64,$(BUILD_TARGET)),)
72 kLdr_TOOL = GCC3
73 kLdr_TOOL = VCC70
74 kLdr_CFLAGS = -W3 -Zl -ML
75 kLdr_ASFLAGS = -f win
76 kLdr_LDFLAGS = -Entry:DllMain@12 -Debug
77 kLdr_DEFS = __WIN__
78 kLdr_SDKS.x86 = LIBSDL WIN32SDK W2K3DDKX86
79 kLdr_SDKS.amd64 = WIN64SDK W2K3DDKAMD64
80 kLdr_LIBS = \
81 $(PATH_TOOL_VCC70_LIB)/LIBC.lib \
82 $(PATH_SDK_W2K3DDKX86_LIB)/ntdll.lib
83else
84 ifneq ($(filter os2,$(BUILD_TARGET)),)
85 kLdr_TOOL = GCC3OMF
86 kLdr_ASFLAGS = -f obj
87 kLdr_LIBS = os2 gcc end
88 else
89 kLdr_TOOL = GCC3
90 kLdr_ASFLAGS = -f elf
91 kLdr_LIBS = gcc
92 endif
93 kLdr_CFLAGS = -Wall -pedantic
94 kLdr_LDFLAGS = -nostdlib
95endif
96kLdr_INCS = .
97kLdr_SOURCES = \
98 kLdr.c \
99 kLdrDyld.c \
100 kLdrDyldFind.c \
101 kLdrDyldMod.c \
102 kLdrDyldOS.c \
103 kLdrHlp.c \
104 kLdrHlpHeap.c \
105 kLdrHlpMem.c \
106 kLdrHlpPath.c \
107 kLdrHlpSem.c \
108 kLdrHlpStr.c \
109 kLdrMisc.c \
110 kLdrRdr.c \
111 kLdrRdrFile.c \
112 kLdrMod.c \
113 kLdrModLX.c \
114 kLdrModPE.c \
115 kLdrModNative.c
116kLdr_SOURCES.os2 = \
117 kLdr-os2.def \
118 kLdr-os2.c \
119 kLdrHlp-gcc.c \
120 kLdrA-os2.asm
121kLdr_SOURCES.win = \
122 kLdr-win.def \
123 kLdr-win.c
124kLdr_SOURCES.win32 = $(kLdr_SOURCES.win)
125kLdr_SOURCES.win64 = $(kLdr_SOURCES.win)
126
127#
128# The OS/2 stub program.
129#
130PROGRAMS.os2 = kLdrExeStub-os2
131kLdrExeStub-os2_TOOL = GCC3OMF
132kLdrExeStub-os2_ASTOOL = NASM
133kLdrExeStub-os2_ASFLAGS = -f obj
134#kLdrExeStub-os2_LDFLAGS = -nostdlib
135kLdrExeStub-os2_LDFLAGS = -nostdlib -Zstack 64
136kLdrExeStub-os2_LIBS = $(TARGET_kLdr)
137#kLdrExeStub-os2_SOURCES = kLdrExeStub-os2.asm
138kLdrExeStub-os2_SOURCES = kLdrExeStub-os2A.asm kLdrExeStub-os2.c
139
140#
141# The Windows stub program.
142#
143PROGRAMS.win = kLdrExeStub-win
144PROGRAMS.win32 = kLdrExeStub-win
145PROGRAMS.win64 = kLdrExeStub-win
146kLdrExeStub-win_TOOL = VCC70
147kLdrExeStub-win_SDKS = WIN32SDK
148kLdrExeStub-win_INCS = .
149kLdrExeStub-win_DEFS = __WIN__
150kLdrExeStub-win_CFLAGS = -W3 -Zl
151kLdrExeStub-win_CFLAGS.debug = -Zi
152kLdrExeStub-win_LDFLAGS = -Entry:WindowsMain -SubSystem:Console -FIXED:NO
153kLdrExeStub-win_LIBS = $(TARGET_kLdr:.dll=.lib)
154kLdrExeStub-win_SOURCES = kLdrExeStub-win.c
155
156
157##
158## The (stub) utility.
159##
160#PROGRAMS = kLdrUtil
161
162
163#
164# Heap testcase.
165#
166PROGRAMS += tstkLdrHeap
167tstkLdrHeap_TEMPLATE = TST
168tstkLdrHeap_SOURCES = \
169 tstkLdrHeap.c \
170 kLdrHlp.c \
171 kLdrHlpHeap.c \
172 kLdrHlpMem.c \
173 kLdrHlpPath.c \
174 kLdrHlpSem.c \
175 kLdrHlpStr.c \
176
177#
178# Heap testcase.
179#
180PROGRAMS += tstkLdrMod
181tstkLdrMod_TEMPLATE = TST
182tstkLdrMod_SOURCES = \
183 tstkLdrMod.c
184ifneq ($(filter win win32 win64 nt,$(BUILD_TARGET)),)
185tstkLdrMod_LIBS = $(TARGET_kLdr:.dll=.lib)
186else
187tstkLdrMod_LIBS = $(TARGET_kLdr)
188endif
189
190
191
192# generate rules.
193include $(PATH_KBUILD)/footer.kmk
194
Note: See TracBrowser for help on using the repository browser.