source: trunk/kLdr/Makefile.kmk@ 3453

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

messing about...

  • Property svn:keywords set to Id
File size: 5.4 KB
RevLine 
[2826]1# $Id: Makefile.kmk 2965 2007-02-13 21:04:40Z bird $# $Id: Makefile.kmk 2965 2007-02-13 21:04:40Z 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
[2960]37ifeq ($(BUILD_TARGET),win)
38 ifeq ($(BUILD_TARGET_ARCH), x86)
39 TEMPLATE_TST_TOOL = VCC70
40 TEMPLATE_TST_CFLAGS = -W3 -Zi -Zl -MD
41 TEMPLATE_TST_LIBS = $(PATH_TOOL_VCC70_LIB)/msvcrt.lib
42 else
43 TEMPLATE_TST_TOOL = VCC80AMD64
44 TEMPLATE_TST_CFLAGS = -W3 -Zi -Zl -MD
45 TEMPLATE_TST_LIBS = $(PATH_TOOL_VCC80AMD64_LIB)/msvcrt.lib
46 endif
[2825]47 TEMPLATE_TST_CFLAGS.release = -O2
48 TEMPLATE_TST_ASFLAGS = -f win
49 TEMPLATE_TST_DEFS = __WIN__
[2954]50 TEMPLATE_TST_SDKS = WINPSDK W2K3DDK
[2825]51
[2965]52else
[2960]53 ifeq ($(BUILD_TARGET),os2)
[2825]54 TEMPLATE_TST_TOOL = GCC3OMF
55 TEMPLATE_TST_ASFLAGS = -f obj
56 TEMPLATE_TST_LIBS = os2 gcc end
[2965]57 else ifeq ($(BUILD_TARGET),darwin)
58 TEMPLATE_TST_TOOL = GCC4MACHO
59 TEMPLATE_TST_ASFLAGS = -f macho
60 TEMPLATE_TST_LIBS = #os2 gcc end
[2825]61 else
62 TEMPLATE_TST_TOOL = GCC3
63 TEMPLATE_TST_ASFLAGS = -f elf
64 TEMPLATE_TST_LIBS = gcc
65 endif
[2899]66 TEMPLATE_TST_CFLAGS = -Wall -pedantic -g -std=gnu99
[2825]67 TEMPLATE_TST_CFLAGS.release = -O2
68 TEMPLATE_TST_LDFLAGS =
69endif
70TEMPLATE_TST_INCS = .
71
72
73#
74# The kLdr DLL.
75#
[2821]76DLLS = kLdr
77kLdr_ASTOOL = NASM
[2960]78ifeq ($(BUILD_TARGET),win)
79 ifeq ($(BUILD_TARGET_ARCH),x86)
80 kLdr_TOOL = VCC70
81 kLdr_CFLAGS = -W3 -Zl -ML
82 kLdr_LDFLAGS = -Entry:DllMain@12 -Debug
83 kLdr_LIBS = \
84 $(PATH_TOOL_VCC70_LIB)/LIBC.lib \
85 $(PATH_SDK_W2K3DDKX86_LIB)/ntdll.lib
86 else
87 kLdr_TOOL = VCC80AMD64
[2965]88 kLdr_ASTOOL = YASM
[2960]89 kLdr_CFLAGS = -W3 -Zl -MT
90 kLdr_LDFLAGS = -Entry:DllMain -Debug
91 kLdr_LIBS = \
92 $(PATH_TOOL_VCC80AMD64_LIB)/LIBCMT.lib \
93 $(PATH_SDK_W2K3DDKAMD64_LIB)/ntdll.lib
94 endif
[2825]95 kLdr_ASFLAGS = -f win
96 kLdr_DEFS = __WIN__
[2952]97 kLdr_SDKS.x86 = WIN32SDK W2K3DDKX86
[2944]98 kLdr_SDKS.amd64 = WIN64SDK W2K3DDKAMD64
[2825]99else
[2960]100 ifeq ($(BUILD_TARGET),os2)
[2825]101 kLdr_TOOL = GCC3OMF
102 kLdr_ASFLAGS = -f obj
103 kLdr_LIBS = os2 gcc end
[2965]104 else ifeq ($(BUILD_TARGET),darwin)
105 kLdr_TOOL = GCC4MACHO
106 kLdr_ASFLAGS = -f macho
107 kLdr_LIBS = #os2 gcc end
[2825]108 else
109 kLdr_TOOL = GCC3
110 kLdr_ASFLAGS = -f elf
111 kLdr_LIBS = gcc
112 endif
113 kLdr_CFLAGS = -Wall -pedantic
114 kLdr_LDFLAGS = -nostdlib
115endif
116kLdr_INCS = .
[2821]117kLdr_SOURCES = \
118 kLdr.c \
[2836]119 kLdrDyld.c \
120 kLdrDyldFind.c \
[2835]121 kLdrDyldMod.c \
[2846]122 kLdrDyldOS.c \
[2955]123 kLdrErr.c \
[2825]124 kLdrHlp.c \
125 kLdrHlpHeap.c \
[2944]126 kLdrHlpMem.c \
127 kLdrHlpPath.c \
128 kLdrHlpSem.c \
129 kLdrHlpStr.c \
130 kLdrMisc.c \
[2825]131 kLdrRdr.c \
132 kLdrRdrFile.c \
[2827]133 kLdrMod.c \
[2854]134 kLdrModLX.c \
[2952]135 kLdrModMachO.c \
[2954]136 kLdrModNative.c \
137 kLdrModPE.c
[2821]138kLdr_SOURCES.os2 = \
139 kLdr-os2.def \
[2886]140 kLdr-os2.c \
[2883]141 kLdrHlp-gcc.c \
[2821]142 kLdrA-os2.asm
[2833]143kLdr_SOURCES.win = \
144 kLdr-win.def \
145 kLdr-win.c
[2821]146
[2955]147kLdrErr.c_DEPS = $(PATH_TARGET)/kldrErrConsts.h
148kLdrErr.c_INCS = $(PATH_TARGET)
149
[2821]150#
151# The OS/2 stub program.
[2825]152#
153PROGRAMS.os2 = kLdrExeStub-os2
[2821]154kLdrExeStub-os2_TOOL = GCC3OMF
155kLdrExeStub-os2_ASTOOL = NASM
156kLdrExeStub-os2_ASFLAGS = -f obj
[2884]157#kLdrExeStub-os2_LDFLAGS = -nostdlib
158kLdrExeStub-os2_LDFLAGS = -nostdlib -Zstack 64
[2821]159kLdrExeStub-os2_LIBS = $(TARGET_kLdr)
[2884]160#kLdrExeStub-os2_SOURCES = kLdrExeStub-os2.asm
161kLdrExeStub-os2_SOURCES = kLdrExeStub-os2A.asm kLdrExeStub-os2.c
[2825]162
[2874]163#
164# The Windows stub program.
165#
166PROGRAMS.win = kLdrExeStub-win
[2960]167kLdrExeStub-win_TOOL.win.x86 = VCC70
168kLdrExeStub-win_TOOL.win.amd64 = VCC80AMD64
169kLdrExeStub-win_SDKS.x86 = WIN32SDK
170kLdrExeStub-win_SDKS.amd64 = WIN64SDK
[2874]171kLdrExeStub-win_INCS = .
172kLdrExeStub-win_DEFS = __WIN__
173kLdrExeStub-win_CFLAGS = -W3 -Zl
174kLdrExeStub-win_CFLAGS.debug = -Zi
[2875]175kLdrExeStub-win_LDFLAGS = -Entry:WindowsMain -SubSystem:Console -FIXED:NO
[2874]176kLdrExeStub-win_LIBS = $(TARGET_kLdr:.dll=.lib)
177kLdrExeStub-win_SOURCES = kLdrExeStub-win.c
178
179
[2821]180##
181## The (stub) utility.
[2825]182##
[2821]183#PROGRAMS = kLdrUtil
184
[2825]185
186#
187# Heap testcase.
188#
189PROGRAMS += tstkLdrHeap
190tstkLdrHeap_TEMPLATE = TST
191tstkLdrHeap_SOURCES = \
192 tstkLdrHeap.c \
193 kLdrHlp.c \
194 kLdrHlpHeap.c \
[2944]195 kLdrHlpMem.c \
196 kLdrHlpPath.c \
197 kLdrHlpSem.c \
198 kLdrHlpStr.c \
[2825]199
[2858]200#
201# Heap testcase.
202#
203PROGRAMS += tstkLdrMod
204tstkLdrMod_TEMPLATE = TST
205tstkLdrMod_SOURCES = \
206 tstkLdrMod.c
[2960]207ifeq ($(BUILD_TARGET),win)
[2858]208tstkLdrMod_LIBS = $(TARGET_kLdr:.dll=.lib)
209else
210tstkLdrMod_LIBS = $(TARGET_kLdr)
211endif
[2825]212
[2858]213
214
[2955]215# Generate rules.
[2859]216include $(PATH_KBUILD)/footer.kmk
[2821]217
[2955]218
219#
220# Generate case statements for kLdrErrStr().
221#
222$(PATH_TARGET)/kldrErrConsts.h: kLdr.h Makefile.kmk | $(call DIRDEP,$(PATH_TARGET))
223 $(RM) -f $@
224 $(SED) \
225 -e '/^#define *\(KLDR_ERR_[^ ()]*\) .*$$/!d' \
226 -e 's/^#define *\(KLDR_ERR_[^ ()]*\) .*$$/ERR_CONST(\1)/' \
[2965]227 -e '/KLDR_ERR_BASE/d' \
[2955]228 -e '/KLDR_ERR_[^_]*_BASE/d' \
229 kLdr.h > $@
230
Note: See TracBrowser for help on using the repository browser.