9443156910a4617ce83cfccc3ac68f572569cac6
[reactos.git] / lib / ntdll / makefile
1 # $Id$
2
3 PATH_TO_TOP = ../..
4
5 TARGET_BOOTSTRAP = yes
6
7 TARGET_TYPE = dynlink
8
9 TARGET_NAME = ntdll
10
11 TARGET_CFLAGS = -g -D__NTDLL__ -Werror -Wall
12
13 # require os code to explicitly request A/W version of structs/functions
14 TARGET_CFLAGS += -D_DISABLE_TIDENTS
15
16 TARGET_ASFLAGS = -I $(PATH_TO_TOP)/include
17
18 TARGET_LFLAGS = -Wl,--file-alignment,0x1000 \
19   -Wl,--section-alignment,0x1000 \
20   -nostartfiles -nostdlib
21
22 TARGET_SDKLIBS = string.a rosrtl.a
23
24 TARGET_GCCLIBS = gcc
25
26 TARGET_BASE = 0x77f60000
27
28 TARGET_PATH = def
29
30 TARGET_ENTRY = 0x0
31
32 CSR_OBJECTS = csr/lpc.o csr/capture.o csr/probe.o csr/thread.o
33
34 DBG_OBJECTS = dbg/brkpoint.o dbg/debug.o dbg/print.o #dbg/winedbg.o
35
36 LDR_OBJECTS = \
37         ldr/entry.o \
38         ldr/res.o \
39         ldr/startup.o \
40         ldr/utils.o
41
42 RTL_I386_OBJECTS = \
43         rtl/i386/alldiv.o \
44         rtl/i386/allmul.o \
45         rtl/i386/allrem.o \
46         rtl/i386/allshl.o \
47         rtl/i386/allshr.o \
48         rtl/i386/aulldiv.o \
49         rtl/i386/aullrem.o \
50         rtl/i386/aullshr.o \
51         rtl/i386/chkstk.o \
52         rtl/i386/exception.o \
53         rtl/i386/except.o \
54         rtl/i386/float.o \
55         rtl/i386/ftol.o
56
57 RTL_OBJECTS = rtl/critical.o rtl/error.o rtl/heap.o rtl/largeint.o \
58               rtl/math.o rtl/mem.o rtl/nls.o rtl/process.o rtl/sd.o \
59               rtl/thread.o rtl/unicode.o rtl/env.o rtl/path.o rtl/ppb.o \
60               rtl/bitmap.o rtl/time.o rtl/acl.o rtl/sid.o rtl/image.o \
61               rtl/access.o rtl/apc.o rtl/callback.o rtl/luid.o rtl/misc.o \
62               rtl/registry.o rtl/exception.o rtl/intrlck.o rtl/resource.o \
63               rtl/handle.o rtl/atom.o rtl/message.o rtl/timezone.o \
64               rtl/propvar.o rtl/security.o rtl/dos8dot3.o rtl/compress.o \
65               rtl/encode.o rtl/random.o rtl/teb.o rtl/splaytree.o
66
67 STDIO_OBJECTS = stdio/sprintf.o stdio/swprintf.o
68
69 STDLIB_OBJECTS = stdlib/abs.o stdlib/atoi.o stdlib/atoi64.o stdlib/atol.o \
70                  stdlib/itoa.o stdlib/itow.o stdlib/labs.o stdlib/splitp.o \
71                  stdlib/strtol.o stdlib/strtoul.o stdlib/wcstol.o \
72                  stdlib/wcstoul.o stdlib/wtoi.o stdlib/wtoi64.o stdlib/wtol.o \
73                  stdlib/mbstowcs.o stdlib/wcstombs.o
74
75 STRING_OBJECTS = string/ctype.o  \
76                  string/memicmp.o\
77                  string/stricmp.o \
78                  string/strlwr.o  \
79                  string/strnicmp.o \
80                  string/strpbrk.o  \
81                  string/strstr.o string/strupr.o string/wstring.o
82
83 ARCH_OBJECTS = \
84         $(RTL_I386_OBJECTS)
85
86 TARGET_OBJECTS = \
87         napi.o \
88         $(ARCH_OBJECTS) \
89         $(CSR_OBJECTS) \
90         $(DBG_OBJECTS) \
91         $(LDR_OBJECTS) \
92         $(RTL_OBJECTS) \
93         $(STDIO_OBJECTS) \
94         $(STDLIB_OBJECTS) \
95         $(STRING_OBJECTS) \
96         stubs/stubs.o
97
98 DEP_OBJECTS = $(TARGET_OBJECTS)
99 DEP_EXCLUDE_FILTER = napi.%
100
101 include $(PATH_TO_TOP)/rules.mak
102
103 include $(TOOLS_PATH)/helper.mk
104
105 include $(TOOLS_PATH)/depend.mk
106
107 %/TAGS:
108         etags -o $(@D)/TAGS $(@D)/\*.c
109
110 etags: csr/TAGS dbg/TAGS ldr/TAGS main/TAGS rtl/TAGS stdio/TAGS stdlib/TAGS string/TAGS stubs/TAGS
111         etags -i csr/TAGS -i dbg/TAGS -i ldr/TAGS -i main/TAGS -i rtl/TAGS -i stdio/TAGS -i stdlib/TAGS -i string/TAGS -i stubs/TAGS