Disabled a function-call that crashes all msvcrt-based apps.
[reactos.git] / reactos / lib / msvcrt / Makefile
1 # $Id: Makefile,v 1.19 2001/07/18 09:23:02 ekohl Exp $
2 #
3 # ReactOS Operating System
4 #
5 PATH_TO_TOP = ../..
6
7 TARGET_NAME=msvcrt
8 TARGET_DLL=$(TARGET_NAME).dll
9
10 CFLAGS = -I../../include -D__MSVCRT__
11
12 all: $(TARGET_DLL)
13
14
15 OBJECTS_CONIO = \
16 conio/cgets.o \
17 conio/cprintf.o \
18 conio/cputs.o \
19 conio/cscanf.o \
20 conio/getch.o \
21 conio/getche.o \
22 conio/kbhit.o \
23 conio/putch.o \
24 conio/ungetch.o
25
26 OBJECTS_CTYPE = \
27 ctype/isalnum.o \
28 ctype/isalpha.o \
29 ctype/isascii.o \
30 ctype/iscntrl.o \
31 ctype/isdigit.o \
32 ctype/isgraph.o \
33 ctype/islower.o \
34 ctype/isprint.o \
35 ctype/ispunct.o \
36 ctype/isspace.o \
37 ctype/isupper.o \
38 ctype/isxdigit.o \
39 ctype/toascii.o \
40 ctype/tolower.o \
41 ctype/toupper.o \
42 ctype/iscsym.o \
43 ctype/isctype.o
44
45 OBJECTS_DIRECT = \
46 direct/chdir.o \
47 direct/chdrive.o \
48 direct/getcwd.o \
49 direct/getdcwd.o \
50 direct/getdfree.o \
51 direct/getdrive.o \
52 direct/mkdir.o \
53 direct/rmdir.o
54
55 OBJECTS_EXCEPT = \
56 except/abnorter.o \
57 except/exhand2.o \
58 except/exhand3.o \
59 except/matherr.o \
60 except/unwind.o \
61 except/xcptfil.o
62
63 OBJECTS_FLOAT = \
64 float/chgsign.o \
65 float/clearfp.o \
66 float/cntrlfp.o \
67 float/copysign.o \
68 float/fpclass.o \
69 float/fpecode.o \
70 float/fpreset.o \
71 float/isnan.o \
72 float/logb.o \
73 float/nafter.o \
74 float/scalb.o \
75 float/statfp.o
76
77 OBJECTS_IO = \
78 io/access.o \
79 io/chmod.o \
80 io/chsize.o \
81 io/close.o \
82 io/commit.o \
83 io/create.o \
84 io/dup.o \
85 io/dup2.o \
86 io/eof.o \
87 io/filelen.o \
88 io/find.o \
89 io/fmode.o \
90 io/isatty.o \
91 io/locking.o \
92 io/lseek.o \
93 io/mktemp.o \
94 io/open.o \
95 io/pipe.o \
96 io/read.o \
97 io/setmode.o \
98 io/sopen.o \
99 io/tell.o \
100 io/umask.o \
101 io/unlink.o \
102 io/utime.o \
103 io/write.o
104
105 OBJECTS_LOCALE = \
106 locale/locale.o
107
108 OBJECTS_MATH = \
109 math/acos.o \
110 math/adjust.o \
111 math/asin.o \
112 math/atan.o \
113 math/atan2.o \
114 math/cabs.o \
115 math/ceil.o \
116 math/cos.o \
117 math/cosh.o \
118 math/exp.o \
119 math/fabs.o \
120 math/floor.o \
121 math/fmod.o \
122 math/frexp.o \
123 math/ftol.o \
124 math/huge_val.o \
125 math/hypot.o \
126 math/j0_y0.o \
127 math/j1_y1.o \
128 math/jn_yn.o \
129 math/ldexp.o \
130 math/log.o \
131 math/log10.o \
132 math/modf.o \
133 math/pow.o \
134 math/sin.o \
135 math/sinh.o \
136 math/sqrt.o \
137 math/stubs.o \
138 math/tan.o \
139 math/tanh.o
140
141 OBJECTS_MBSTRING = \
142 mbstring/hanzen.o \
143 mbstring/ischira.o \
144 mbstring/iskana.o \
145 mbstring/iskpun.o \
146 mbstring/islead.o \
147 mbstring/islwr.o \
148 mbstring/ismbal.o \
149 mbstring/ismbaln.o \
150 mbstring/ismbc.o \
151 mbstring/ismbgra.o \
152 mbstring/ismbkaln.o \
153 mbstring/ismblead.o \
154 mbstring/ismbpri.o \
155 mbstring/ismbpun.o \
156 mbstring/ismbtrl.o \
157 mbstring/isuppr.o \
158 mbstring/jistojms.o \
159 mbstring/jmstojis.o \
160 mbstring/mbbtype.o \
161 mbstring/mbccpy.o \
162 mbstring/mbclen.o \
163 mbstring/mbscat.o \
164 mbstring/mbschr.o \
165 mbstring/mbscmp.o \
166 mbstring/mbscoll.o \
167 mbstring/mbscpy.o \
168 mbstring/mbscspn.o \
169 mbstring/mbsdec.o \
170 mbstring/mbsdup.o \
171 mbstring/mbsicmp.o \
172 mbstring/mbsicoll.o \
173 mbstring/mbsinc.o \
174 mbstring/mbslen.o \
175 mbstring/mbslwr.o \
176 mbstring/mbsncat.o \
177 mbstring/mbsnccnt.o \
178 mbstring/mbsncmp.o \
179 mbstring/mbsncoll.o \
180 mbstring/mbsncpy.o \
181 mbstring/mbsnextc.o \
182 mbstring/mbsnicmp.o \
183 mbstring/mbsnicoll.o \
184 mbstring/mbsninc.o \
185 mbstring/mbsnset.o \
186 mbstring/mbspbrk.o \
187 mbstring/mbsrchr.o \
188 mbstring/mbsrev.o \
189 mbstring/mbsset.o \
190 mbstring/mbsspn.o \
191 mbstring/mbsspnp.o \
192 mbstring/mbsstr.o \
193 mbstring/mbstok.o \
194 mbstring/mbstrlen.o \
195 mbstring/mbsupr.o
196
197 OBJECTS_MISC = \
198 misc/amsg.o \
199 misc/assert.o \
200 misc/dllmain.o \
201 misc/getargs.o \
202 misc/initterm.o \
203 misc/purecall.o \
204 misc/tls.o
205
206 OBJECTS_PROCESS = \
207 process/_cwait.o \
208 process/_system.o \
209 process/dll.o \
210 process/execl.o \
211 process/execle.o \
212 process/execlp.o \
213 process/execlpe.o \
214 process/execv.o \
215 process/execve.o \
216 process/execvp.o \
217 process/execvpe.o \
218 process/procid.o \
219 process/spawnl.o \
220 process/spawnle.o \
221 process/spawnlp.o \
222 process/spawnlpe.o \
223 process/spawnv.o \
224 process/spawnve.o \
225 process/spawnvp.o \
226 process/spawnvpe.o \
227 process/thread.o \
228 process/threadid.o
229
230 OBJECTS_SEARCH = \
231 search/lfind.o \
232 search/lsearch.o
233
234 OBJECTS_SETJMP = \
235 setjmp/setjmp.o
236
237 OBJECTS_SIGNAL = \
238 signal/signal.o
239
240 OBJECTS_STDIO = \
241 stdio/allocfil.o \
242 stdio/clearerr.o \
243 stdio/fclose.o \
244 stdio/fdopen.o \
245 stdio/feof.o \
246 stdio/ferror.o \
247 stdio/fflush.o \
248 stdio/fgetc.o \
249 stdio/fgetchar.o \
250 stdio/fgetpos.o \
251 stdio/fgets.o \
252 stdio/filbuf.o \
253 stdio/fileno.o \
254 stdio/flsbuf.o \
255 stdio/fopen.o \
256 stdio/fprintf.o \
257 stdio/fputc.o \
258 stdio/fputchar.o \
259 stdio/fputs.o \
260 stdio/fread.o \
261 stdio/freopen.o \
262 stdio/fscanf.o \
263 stdio/fseek.o \
264 stdio/fsetpos.o \
265 stdio/fsopen.o \
266 stdio/ftell.o \
267 stdio/fwalk.o \
268 stdio/fwrite.o \
269 stdio/getc.o \
270 stdio/getchar.o \
271 stdio/gets.o \
272 stdio/getw.o \
273 stdio/perror.o \
274 stdio/popen.o \
275 stdio/printf.o \
276 stdio/putc.o \
277 stdio/putchar.o \
278 stdio/puts.o \
279 stdio/putw.o \
280 stdio/remove.o \
281 stdio/rename.o \
282 stdio/rewind.o \
283 stdio/rmtmp.o \
284 stdio/scanf.o \
285 stdio/setbuf.o \
286 stdio/setvbuf.o \
287 stdio/sprintf.o \
288 stdio/sscanf.o \
289 stdio/stdhnd.o \
290 stdio/tempnam.o \
291 stdio/tmpfile.o \
292 stdio/tmpnam.o \
293 stdio/ungetc.o \
294 stdio/vfprintf.o \
295 stdio/vfscanf.o \
296 stdio/vfwprint.o \
297 stdio/vprintf.o \
298 stdio/vscanf.o \
299 stdio/vsprintf.o \
300 stdio/vsscanf.o
301
302 OBJECTS_STDLIB = \
303 stdlib/_exit.o \
304 stdlib/abort.o \
305 stdlib/abs.o \
306 stdlib/atexit.o \
307 stdlib/atof.o \
308 stdlib/atoi.o \
309 stdlib/atoi64.o \
310 stdlib/atol.o \
311 stdlib/bsearch.o \
312 stdlib/div.o \
313 stdlib/ecvt.o \
314 stdlib/ecvtbuf.o \
315 stdlib/errno.o \
316 stdlib/fcvt.o \
317 stdlib/fcvtbuf.o \
318 stdlib/fullpath.o \
319 stdlib/gcvt.o \
320 stdlib/getenv.o \
321 stdlib/itoa.o \
322 stdlib/itow.o \
323 stdlib/labs.o \
324 stdlib/ldiv.o \
325 stdlib/makepath.o \
326 stdlib/malloc.o \
327 stdlib/obsol.o \
328 stdlib/putenv.o \
329 stdlib/qsort.o \
330 stdlib/rand.o \
331 stdlib/rot.o \
332 stdlib/senv.o \
333 stdlib/splitp.o \
334 stdlib/strtod.o \
335 stdlib/strtol.o \
336 stdlib/strtoul.o \
337 stdlib/swab.o \
338 stdlib/wcstod.o \
339 stdlib/wcstol.o \
340 stdlib/wcstoul.o \
341 stdlib/wtoi.o \
342 stdlib/wtoi64.o
343
344 OBJECTS_STRING = \
345 string/memccpy.o \
346 string/memchr.o \
347 string/memcmp.o \
348 string/memcpy.o \
349 string/memicmp.o \
350 string/memmove.o \
351 string/memset.o \
352 string/strcat.o \
353 string/strchr.o \
354 string/strcmp.o \
355 string/strcoll.o \
356 string/strcpy.o \
357 string/strcspn.o \
358 string/strdup.o \
359 string/strerror.o \
360 string/stricmp.o \
361 string/strlen.o \
362 string/strlwr.o \
363 string/strncat.o \
364 string/strncmp.o \
365 string/strncpy.o \
366 string/strnicmp.o \
367 string/strnlen.o \
368 string/strpbrk.o \
369 string/strrchr.o \
370 string/strrev.o\
371 string/strset.o \
372 string/strspn.o \
373 string/strstr.o \
374 string/strtok.o \
375 string/strupr.o \
376 string/strxfrm.o
377
378 OBJECTS_SYS_STAT = \
379 sys_stat/fstat.o \
380 sys_stat/futime.o \
381 sys_stat/stat.o
382
383 OBJECTS_TIME = \
384 time/clock.o \
385 time/ctime.o \
386 time/difftime.o \
387 time/strdate.o \
388 time/strftime.o \
389 time/strtime.o \
390 time/time.o
391
392 OBJECTS_WSTRING = \
393 wstring/wcscat.o \
394 wstring/wcschr.o \
395 wstring/wcscmp.o \
396 wstring/wcscoll.o \
397 wstring/wcscpy.o \
398 wstring/wcscspn.o \
399 wstring/wcsdup.o \
400 wstring/wcsicmp.o \
401 wstring/wcslen.o \
402 wstring/wcslwr.o \
403 wstring/wcsncat.o \
404 wstring/wcsncmp.o \
405 wstring/wcsncpy.o \
406 wstring/wcsnicmp.o \
407 wstring/wcsnlen.o \
408 wstring/wcspbrk.o \
409 wstring/wcsrchr.o \
410 wstring/wcsrev.o \
411 wstring/wcsset.o \
412 wstring/wcsspn.o \
413 wstring/wcsstr.o \
414 wstring/wcstok.o \
415 wstring/wcsupr.o \
416 wstring/wcsxfrm.o
417
418 OBJECTS = \
419 $(OBJECTS_CONIO) \
420 $(OBJECTS_CTYPE) \
421 $(OBJECTS_DIRECT) \
422 $(OBJECTS_EXCEPT) \
423 $(OBJECTS_FLOAT) \
424 $(OBJECTS_IO) \
425 $(OBJECTS_LOCALE) \
426 $(OBJECTS_MATH) \
427 $(OBJECTS_MBSTRING) \
428 $(OBJECTS_MISC) \
429 $(OBJECTS_PROCESS) \
430 $(OBJECTS_SEARCH) \
431 $(OBJECTS_SETJMP) \
432 $(OBJECTS_SIGNAL) \
433 $(OBJECTS_STDIO) \
434 $(OBJECTS_STDLIB) \
435 $(OBJECTS_STRING) \
436 $(OBJECTS_SYS_STAT) \
437 $(OBJECTS_TIME) \
438 $(OBJECTS_WSTRING) \
439 msvcrt.coff
440
441 CLEAN_FILES = conio/*.o ctype/*.o direct/*.o except/*.o float/*.o io/*.o \
442 locale/*.o math/*.o mbstring/*.o misc/*.o process/*.o search/*.o \
443 setjmp/*.o signal/*.o stdio/*.o stdlib/*.o string/*.o sys_stat/*.o \
444 time/*.o wstring/*.o $(TARGET_NAME).a $(TARGET_NAME).coff \
445 $(TARGET_NAME).o $(TARGET_NAME).dll $(TARGET_NAME).sym
446
447 $(TARGET_NAME).coff: $(TARGET_NAME).rc ../../include/reactos/resource.h
448
449 $(TARGET_NAME).a: $(OBJECTS)
450 $(LD) -r $(OBJECTS) -o $(TARGET_NAME).a
451
452 $(TARGET_NAME).dll: $(DLLMAIN) $(OBJECTS) $(TARGET_NAME).def
453 $(LD) -r $(OBJECTS) -o $(TARGET_NAME).o
454 $(DLLTOOL) \
455 --dllname $(TARGET_NAME).dll \
456 --def $(TARGET_NAME).def \
457 --output-lib $(TARGET_NAME).a
458 $(CC) \
459 -nostartfiles -nostdlib \
460 -mdll \
461 -o junk.tmp \
462 -Wl,--base-file,base.tmp \
463 -Wl,--entry=_DllMain@12 \
464 $(TARGET_NAME).o \
465 ../kernel32/kernel32.a -lgcc
466 - $(RM) junk.tmp
467 $(DLLTOOL) \
468 --dllname $(TARGET_NAME).dll \
469 --base-file base.tmp \
470 --output-exp temp.exp \
471 --def $(TARGET_NAME).def
472 - $(RM) base.tmp
473 $(CC) \
474 -nostartfiles -nostdlib \
475 -mdll \
476 -o $(TARGET_NAME).dll \
477 $(TARGET_NAME).o \
478 ../kernel32/kernel32.a -lgcc \
479 -Wl,--image-base,0x78000000 \
480 -Wl,--file-alignment,0x1000 \
481 -Wl,--section-alignment,0x1000 \
482 -Wl,temp.exp \
483 -Wl,--entry=_DllMain@12
484 - $(RM) temp.exp
485 $(NM) --numeric-sort $(TARGET_NAME).dll > $(TARGET_NAME).sym
486
487 clean:
488 - $(RM) $(CLEAN_FILES)
489
490 .phony: clean
491
492 install: $(FLOPPY_DIR)/dlls/$(TARGET_NAME).dll
493
494 $(FLOPPY_DIR)/dlls/$(TARGET_NAME).dll: $(TARGET_NAME).dll
495 $(CP) $(TARGET_NAME).dll $(FLOPPY_DIR)/dlls/$(TARGET_NAME).dll
496
497 dist: $(DIST_DIR)/dlls/$(TARGET_NAME).dll
498
499 $(DIST_DIR)/dlls/$(TARGET_NAME).dll: $(TARGET_NAME).dll
500 $(CP) $(TARGET_NAME).dll ../../$(DIST_DIR)/dlls/$(TARGET_NAME).dll
501
502 include ../../rules.mak
503