source: trunk/kLdr/Makefile.kmk@ 2961

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

Build on amd64.

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