diff --git a/reactos/lib/crtdll/crtdll.def b/reactos/lib/crtdll/crtdll.def index 785391ce8cc..22c89ef9969 100644 --- a/reactos/lib/crtdll/crtdll.def +++ b/reactos/lib/crtdll/crtdll.def @@ -35,16 +35,16 @@ ; __builtin_new ; __builtin_delete ; _set_new_handler__FPFUi_i -; +; I commented out these, cause i dont get why they were added. -Gunnar ; LIBRARY CRTDLL.DLL EXPORTS -__builtin_new -__builtin_delete -??2@YAPAXI@Z=malloc -??3@YAXPAX@Z=free -?_set_new_handler@@YAP6AHI@ZP6AHI@Z@Z=_set_new_handler__FPFUi_i -_set_new_handler__FPFUi_i +;__builtin_new +;__builtin_delete +??2@YAPAXI@Z=MSVCRT_operator_new +??3@YAXPAX@Z=MSVCRT_operator_delete +?_set_new_handler@@YAP6AHI@ZP6AHI@Z@Z=MSVCRT__set_new_handler +;_set_new_handler__FPFUi_i _CIacos _CIasin _CIatan @@ -61,31 +61,31 @@ _CIsinh _CIsqrt _CItan _CItanh -_HUGE_dll +_HUGE_dll=_HUGE DATA _XcptFilter __GetMainArgs -__argc_dll -__argv_dll +__argc_dll=__argc DATA +__argv_dll=__argv DATA __dllonexit __doserrno __fpecode __isascii __iscsym=NTDLL.__iscsym __iscsymf=NTDLL.__iscsymf -__mb_cur_max_dll +__mb_cur_max_dll=__mb_cur_max DATA __pxcptinfoptrs __threadhandle __threadid __toascii=NTDLL.__toascii _abnormal_termination _access -_acmdln_dll -_aexit_rtn_dll +_acmdln_dll=_acmdln DATA +_aexit_rtn_dll=_aexit_rtn DATA _amsg_exit _assert -_basemajor_dll -_baseminor_dll -_baseversion_dll +_basemajor_dll=CRTDLL__basemajor_dll DATA +_baseminor_dll=CRTDLL__baseminor_dll DATA +_baseversion_dll=CRTDLL__baseversion_dll DATA _beep _beginthread _c_exit @@ -100,23 +100,23 @@ _chsize _clearfp _close _commit -_commode_dll +_commode_dll=_commode DATA _control87 _controlfp _copysign _cprintf -_cpumode_dll +_cpumode_dll=_cpumode DATA ;fixme: wine has CRTDLL__cpumode_dll _cputs _creat _cscanf -_ctype +_ctype DATA _cwait -_daylight_dll +_daylight_dll=_daylight DATA _dup _dup2 _ecvt _endthread -_environ_dll +_environ_dll=_environ DATA _eof _errno _except_handler2 @@ -136,23 +136,23 @@ _fdopen _fgetchar _fgetwchar _filbuf -_fileinfo_dll +;_fileinfo_dll=_fileinfo DATA _filelength -_fileno +_fileno DATA _findclose _findfirst _findnext _finite _flsbuf _flushall -_fmode_dll +_fmode_dll=__fmode DATA _fpclass _fpieee_flt _fpreset _fputchar _fputwchar _fsopen -_fstat +_fstat=CRTDLL__fstat _ftime _ftol=NTDLL._ftol _fullpath @@ -177,7 +177,7 @@ _heapset _heapwalk _hypot _initterm -_iob +_iob DATA _isatty _isctype _ismbbalnum @@ -236,7 +236,7 @@ _mbctokata _mbctolower _mbctombb _mbctoupper -_mbctype +_mbctype DATA _mbsbtype _mbscat _mbschr @@ -282,21 +282,21 @@ _nextafter _onexit _open _open_osfhandle -_osmajor_dll -_osminor_dll -_osmode_dll -_osver_dll -_osversion_dll +_osmajor_dll=CRTDLL__osmajor_dll DATA +_osminor_dll=CRTDLL__osminor_dll DATA +_osmode_dll=CRTDLL__osmode_dll DATA +_osver_dll=_osver DATA +_osversion_dll=CRTDLL__osversion_dll DATA _pclose -_pctype_dll -_pgmptr_dll +_pctype_dll=_pctype DATA +_pgmptr_dll=_pgmptr DATA _pipe _popen _purecall _putch _putenv _putw -_pwctype_dll +_pwctype_dll=_pwctype DATA _read _rmdir _rmtmp @@ -321,7 +321,7 @@ _spawnve _spawnvp _spawnvpe _splitpath -_stat +_stat=CRTDLL__stat _statusfp _strcmpi=NTDLL._strcmpi _strdate @@ -343,14 +343,14 @@ _strspnp _strtime _strupr=NTDLL._strupr _swab -_sys_errlist -_sys_nerr_dll +_sys_errlist DATA +_sys_nerr_dll=_sys_nerr DATA _tell _tempnam -_timezone_dll +_timezone_dll=_timezone _tolower=NTDLL._tolower _toupper=NTDLL._toupper -_tzname +_tzname DATA _tzset _ultoa=NTDLL._ultoa _ultow=NTDLL._ultow @@ -370,9 +370,9 @@ _wcsnset _wcsrev _wcsset _wcsupr -_winmajor_dll -_winminor_dll -_winver_dll +_winmajor_dll=_winmajor DATA +_winminor_dll=_winminor DATA +_winver_dll=_winver DATA _write _wtoi=NTDLL._wtoi _wtol=NTDLL._wtol diff --git a/reactos/lib/crtdll/dllmain.c b/reactos/lib/crtdll/dllmain.c new file mode 100644 index 00000000000..3607c4b9fb1 --- /dev/null +++ b/reactos/lib/crtdll/dllmain.c @@ -0,0 +1,296 @@ +/* $Id: dllmain.c 12852 2005-01-06 13:58:04Z mf $ + * + * dllmain.c + * + * ReactOS MSVCRT.DLL Compatibility Library + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRENTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAMED. This includes but is not limited to warrenties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + * $Revision: 1.24 $ + * $Author: mf $ + * $Date: 2005-01-06 14:58:04 +0100 (Thu, 06 Jan 2005) $ + * + */ + +#include "precomp.h" +#include +#include +#include +#include + +#define NDEBUG +#include + + +/* EXTERNAL PROTOTYPES ********************************************************/ + +//void __fileno_init(void); +extern BOOL __fileno_init(void); +extern int BlockEnvToEnvironA(void); +extern int BlockEnvToEnvironW(void); +extern void FreeEnvironment(char **environment); + +extern unsigned int _osver; +extern unsigned int _winminor; +extern unsigned int _winmajor; +extern unsigned int _winver; + +unsigned int CRTDLL__basemajor_dll; +unsigned int CRTDLL__baseminor_dll; +unsigned int CRTDLL__baseversion_dll; +unsigned int CRTDLL__cpumode_dll; +unsigned int CRTDLL__osmajor_dll; +unsigned int CRTDLL__osminor_dll; +unsigned int CRTDLL__osmode_dll; +unsigned int CRTDLL__osversion_dll; + +extern char* _acmdln; /* pointer to ascii command line */ +extern wchar_t* _wcmdln; /* pointer to wide character command line */ +#undef _environ +extern char** _environ; /* pointer to environment block */ +extern char** __initenv; /* pointer to initial environment block */ +extern wchar_t** _wenviron; /* pointer to environment block */ +extern wchar_t** __winitenv; /* pointer to initial environment block */ + + + +/* dev_t is a short in crtdll but an unsigned int in msvcrt */ +typedef short crtdll_dev_t; + +struct crtdll_stat +{ + crtdll_dev_t st_dev; + _ino_t st_ino; + unsigned short st_mode; + short st_nlink; + short st_uid; + short st_gid; + crtdll_dev_t st_rdev; + _off_t st_size; + time_t st_atime; + time_t st_mtime; + time_t st_ctime; +}; + +/* convert struct _stat from crtdll format to msvcrt format */ +static void convert_struct_stat( struct crtdll_stat *dst, const struct _stat *src ) +{ + dst->st_dev = src->st_dev; + dst->st_ino = src->st_ino; + dst->st_mode = src->st_mode; + dst->st_nlink = src->st_nlink; + dst->st_uid = src->st_uid; + dst->st_gid = src->st_gid; + dst->st_rdev = src->st_rdev; + dst->st_size = src->st_size; + dst->st_atime = src->st_atime; + dst->st_mtime = src->st_mtime; + dst->st_ctime = src->st_ctime; +} + +/* from msvcrt */ +extern void __getmainargs( int *argc, char ***argv, char ***envp, + int expand_wildcards, int *new_mode ); + +/* LIBRARY GLOBAL VARIABLES ***************************************************/ + +HANDLE hHeap = NULL; /* handle for heap */ + + +/* LIBRARY ENTRY POINT ********************************************************/ + +BOOL +STDCALL +DllMain(PVOID hinstDll, ULONG dwReason, PVOID reserved) +{ + switch (dwReason) + { + case DLL_PROCESS_ATTACH://1 + /* initialize version info */ + DPRINT("Attach %d\n", nAttachCount); + + _osver = GetVersion(); + + CRTDLL__basemajor_dll = (_osver >> 24) & 0xFF; + CRTDLL__baseminor_dll = (_osver >> 16) & 0xFF; + CRTDLL__baseversion_dll = (_osver >> 16); + CRTDLL__cpumode_dll = 1; /* FIXME */ + CRTDLL__osmajor_dll = (_osver >>8) & 0xFF; + CRTDLL__osminor_dll = (_osver & 0xFF); + CRTDLL__osmode_dll = 1; /* FIXME */ + CRTDLL__osversion_dll = (_osver & 0xFFFF); + + _winmajor = (_osver >> 8) & 0xFF; + _winminor = _osver & 0xFF; + _winver = (_winmajor << 8) + _winminor; + _osver = (_osver >> 16) & 0xFFFF; + hHeap = HeapCreate(0, 100000, 0); + if (hHeap == NULL) + return FALSE; + if (!__fileno_init()) + return FALSE; + + /* create tls stuff */ + if (!CreateThreadData()) + return FALSE; + + if (BlockEnvToEnvironA() < 0) + return FALSE; + + if (BlockEnvToEnvironW() < 0) + { + FreeEnvironment((char**)_wenviron); + return FALSE; + } + + _acmdln = _strdup(GetCommandLineA()); + _wcmdln = _wcsdup(GetCommandLineW()); + + /* FIXME: more initializations... */ + + /* FIXME: Initialization of the WINE code */ + msvcrt_init_mt_locks(); + + DPRINT("Attach done\n"); + break; + + case DLL_THREAD_ATTACH://2 + break; + + case DLL_THREAD_DETACH://4 + FreeThreadData(NULL); + break; + + case DLL_PROCESS_DETACH://0 + DPRINT("Detach %d\n", nAttachCount); + /* FIXME: more cleanup... */ + _fcloseall(); + + /* destroy tls stuff */ + DestroyThreadData(); + + if (__winitenv && __winitenv != _wenviron) + FreeEnvironment((char**)__winitenv); + if (_wenviron) + FreeEnvironment((char**)_wenviron); + + if (__initenv && __initenv != _environ) + FreeEnvironment(__initenv); + if (_environ) + FreeEnvironment(_environ); + + /* destroy heap */ + HeapDestroy(hHeap); + + DPRINT("Detach done\n"); + break; + } + + return TRUE; +} + + + + +/********************************************************************* + * __GetMainArgs (CRTDLL.@) + */ +void __GetMainArgs( int *argc, char ***argv, char ***envp, int expand_wildcards ) +{ + int new_mode = 0; + __getmainargs( argc, argv, envp, expand_wildcards, &new_mode ); +} + + +/********************************************************************* + * _fstat (CRTDLL.@) + */ +int CRTDLL__fstat(int fd, struct crtdll_stat* buf) +{ + extern int _fstat(int,struct _stat*); + struct _stat st; + int ret; + + if (!(ret = _fstat( fd, &st ))) convert_struct_stat( buf, &st ); + return ret; +} + + +/********************************************************************* + * _stat (CRTDLL.@) + */ +int CRTDLL__stat(const char* path, struct crtdll_stat * buf) +{ + extern int _stat(const char*,struct _stat*); + struct _stat st; + int ret; + + if (!(ret = _stat( path, &st ))) convert_struct_stat( buf, &st ); + return ret; +} + + +/********************************************************************* + * _strdec (CRTDLL.@) + */ +char *_strdec(const char *str1, const char *str2) +{ + return (char *)(str2 - 1); +} + + +/********************************************************************* + * _strinc (CRTDLL.@) + */ +char *_strinc(const char *str) +{ + return (char *)(str + 1); +} + + +/********************************************************************* + * _strncnt (CRTDLL.@) + */ +size_t _strncnt(const char *str, size_t maxlen) +{ + size_t len = strlen(str); + return (len > maxlen) ? maxlen : len; +} + + +/********************************************************************* + * _strnextc (CRTDLL.@) + */ +unsigned int _strnextc(const char *str) +{ + return (unsigned int)str[0]; +} + + +/********************************************************************* + * _strninc (CRTDLL.@) + */ +char *_strninc(const char *str, size_t len) +{ + return (char *)(str + len); +} + + +/********************************************************************* + * _strspnp (CRTDLL.@) + */ +char *_strspnp( const char *str1, const char *str2) +{ + str1 += strspn( str1, str2 ); + return *str1 ? (char*)str1 : NULL; +} + +/* EOF */ diff --git a/reactos/lib/crtdll/makefile b/reactos/lib/crtdll/makefile index da7fd6874cb..ef83d41b95b 100644 --- a/reactos/lib/crtdll/makefile +++ b/reactos/lib/crtdll/makefile @@ -2,7 +2,7 @@ PATH_TO_TOP = ../.. -PATH_TO_MSVCRT = ../msvcrt +TARGET_DEFONLY = yes TARGET_TYPE = dynlink @@ -15,489 +15,39 @@ TARGET_BASE = $(TARGET_BASE_LIB_CRTDLL) # don't remove @nn from exported symbols - needed so dlltool doesn't mess up mangled c++ exports RM_AT_FROM_SYMBOLS = no -TARGET_LFLAGS = -nostartfiles -nostdlib +TARGET_LFLAGS = -nostartfiles -nostdlib --enable-stdcall-fixup -TARGET_CFLAGS = -D_MSVCRT_LIB_ -Werror -Wall - -# require os code to explicitly request A/W version of structs/functions -TARGET_CFLAGS += -D_DISABLE_TIDENTS - -TARGET_SDKLIBS = string.a kernel32.a ntdll.a +TARGET_SDKLIBS = crt.a string.a kernel32.a ntdll.a wine.a TARGET_GCCLIBS = gcc +TARGET_CFLAGS = -D__USE_W32API -Wall -Werror + +# require os code to explicitly request A/W version of structs/functions +TARGET_CFLAGS += \ + -D_DISABLE_TIDENTS \ + -D__USE_W32API \ + -D__REACTOS__ \ + -D_WIN32_IE=0x600 \ + -D_WIN32_WINNT=0x501 \ + -DUSE_MSVCRT_PREFIX \ + -D_MT + TARGET_OBJECTS = $(TARGET_NAME).o -TARGET_CLEAN = \ - conio/*.o \ - ctype/*.o \ - direct/*.o \ - dirent/*.o \ - except/*.o \ - float/*.o \ - io/*.o \ - libc/*.o \ - malloc/*.o \ - math/*.o \ - mbstring/*.o \ - misc/*.o \ - process/*.o \ - quad/*.o \ - search/*.o \ - setjmp/*.o \ - signal/*.o \ - stdio/*.o \ - stdlib/*.o \ - string/*.o \ - sys_stat/*.o \ - tchar/*.o \ - time/*.o \ - wchar/*.o - +TARGET_CLEAN = dllmain.o include $(PATH_TO_TOP)/rules.mak include $(TOOLS_PATH)/helper.mk -CONIO_OBJECTS = \ - $(PATH_TO_MSVCRT)/conio/cgets.o \ - $(PATH_TO_MSVCRT)/conio/cprintf.o \ - $(PATH_TO_MSVCRT)/conio/cputs.o \ - $(PATH_TO_MSVCRT)/conio/cscanf.o \ - $(PATH_TO_MSVCRT)/conio/getch.o \ - $(PATH_TO_MSVCRT)/conio/getche.o \ - $(PATH_TO_MSVCRT)/conio/kbhit.o \ - $(PATH_TO_MSVCRT)/conio/putch.o \ - $(PATH_TO_MSVCRT)/conio/ungetch.o - -CTYPE_OBJECTS = \ - $(PATH_TO_MSVCRT)/ctype/ctype.o \ - $(PATH_TO_MSVCRT)/ctype/isalnum.o \ - $(PATH_TO_MSVCRT)/ctype/isascii.o \ - $(PATH_TO_MSVCRT)/ctype/iscntrl.o \ - ctype/isctype.o \ - $(PATH_TO_MSVCRT)/ctype/isgraph.o \ - $(PATH_TO_MSVCRT)/ctype/isprint.o \ - $(PATH_TO_MSVCRT)/ctype/ispunct.o \ - $(PATH_TO_MSVCRT)/ctype/isupper.o - -# REMOVED CTYPE ENTRIES: -# $(PATH_TO_MSVCRT)/ctype/isalpha.o \ -# $(PATH_TO_MSVCRT)/ctype/iscsym.o \ -# $(PATH_TO_MSVCRT)/ctype/isdigit.o \ -# $(PATH_TO_MSVCRT)/ctype/islower.o \ -# $(PATH_TO_MSVCRT)/ctype/isspace.o \ -# $(PATH_TO_MSVCRT)/ctype/isxdigit.o \ -# $(PATH_TO_MSVCRT)/ctype/toascii.o \ -# $(PATH_TO_MSVCRT)/ctype/tolower.o \ -# $(PATH_TO_MSVCRT)/ctype/toupper.o \ - -DIRECT_OBJECTS = \ - $(PATH_TO_MSVCRT)/direct/chdir.o \ - $(PATH_TO_MSVCRT)/direct/chdrive.o \ - $(PATH_TO_MSVCRT)/direct/getcwd.o \ - $(PATH_TO_MSVCRT)/direct/getdcwd.o \ - $(PATH_TO_MSVCRT)/direct/getdfree.o \ - $(PATH_TO_MSVCRT)/direct/getdrive.o \ - $(PATH_TO_MSVCRT)/direct/mkdir.o \ - $(PATH_TO_MSVCRT)/direct/rmdir.o - -EXCEPT_OBJECTS = \ - except/abnorter.o \ - except/exhand2.o \ - except/matherr.o \ - except/unwind.o - -FLOAT_OBJECTS = \ - $(PATH_TO_MSVCRT)/float/chgsign.o \ - $(PATH_TO_MSVCRT)/float/clearfp.o \ - $(PATH_TO_MSVCRT)/float/cntrlfp.o \ - $(PATH_TO_MSVCRT)/float/copysign.o \ - $(PATH_TO_MSVCRT)/float/fpclass.o \ - $(PATH_TO_MSVCRT)/float/fpreset.o \ - $(PATH_TO_MSVCRT)/float/isnan.o \ - $(PATH_TO_MSVCRT)/float/logb.o \ - $(PATH_TO_MSVCRT)/float/nafter.o \ - $(PATH_TO_MSVCRT)/float/scalb.o \ - $(PATH_TO_MSVCRT)/float/statfp.o - -IO_OBJECTS = \ - $(PATH_TO_MSVCRT)/io/access.o \ - $(PATH_TO_MSVCRT)/io/chmod.o \ - $(PATH_TO_MSVCRT)/io/chsize.o \ - $(PATH_TO_MSVCRT)/io/close.o \ - $(PATH_TO_MSVCRT)/io/commit.o \ - io/create.o \ - io/dup.o \ - $(PATH_TO_MSVCRT)/io/dup2.o \ - io/eof.o \ - $(PATH_TO_MSVCRT)/io/filelen.o \ - io/find.o \ - io/fmode.o \ - $(PATH_TO_MSVCRT)/io/isatty.o \ - $(PATH_TO_MSVCRT)/io/locking.o \ - io/lseek.o \ - $(PATH_TO_MSVCRT)/io/mktemp.o \ - io/open.o \ - io/pipe.o \ - io/read.o \ - $(PATH_TO_MSVCRT)/io/setmode.o \ - $(PATH_TO_MSVCRT)/io/sopen.o \ - $(PATH_TO_MSVCRT)/io/tell.o \ - $(PATH_TO_MSVCRT)/io/umask.o \ - io/unlink.o \ - $(PATH_TO_MSVCRT)/io/utime.o \ - io/write.o - -LOCALE_OBJECTS = \ - $(PATH_TO_MSVCRT)/locale/locale.o - -MATH_OBJECTS = \ - $(PATH_TO_MSVCRT)/math/acos.o \ - math/acosh.o \ - $(PATH_TO_MSVCRT)/math/asin.o \ - math/asinh.o \ - $(PATH_TO_MSVCRT)/math/atan.o \ - $(PATH_TO_MSVCRT)/math/atan2.o\ - math/atanh.o \ - $(PATH_TO_MSVCRT)/math/cabs.o \ - math/ceil.o \ - $(PATH_TO_MSVCRT)/math/cos.o \ - $(PATH_TO_MSVCRT)/math/cosh.o \ - $(PATH_TO_MSVCRT)/math/exp.o \ - $(PATH_TO_MSVCRT)/math/fabs.o\ - math/floor.o \ - $(PATH_TO_MSVCRT)/math/fmod.o \ - $(PATH_TO_MSVCRT)/math/frexp.o \ - math/huge_val.o \ - $(PATH_TO_MSVCRT)/math/hypot.o \ - $(PATH_TO_MSVCRT)/math/j0_y0.o \ - $(PATH_TO_MSVCRT)/math/j1_y1.o \ - $(PATH_TO_MSVCRT)/math/jn_yn.o \ - $(PATH_TO_MSVCRT)/math/ldexp.o \ - $(PATH_TO_MSVCRT)/math/log.o \ - $(PATH_TO_MSVCRT)/math/log10.o \ - $(PATH_TO_MSVCRT)/math/modf.o \ - $(PATH_TO_MSVCRT)/math/pow.o \ - $(PATH_TO_MSVCRT)/math/sin.o \ - $(PATH_TO_MSVCRT)/math/sinh.o \ - $(PATH_TO_MSVCRT)/math/sqrt.o \ - $(PATH_TO_MSVCRT)/math/stubs.o \ - $(PATH_TO_MSVCRT)/math/tan.o \ - $(PATH_TO_MSVCRT)/math/tanh.o - -MALLOC_OBJECTS = \ - malloc/expand.o \ - malloc/heap.o - -MBSTRING_OBJECTS = \ - $(PATH_TO_MSVCRT)/mbstring/hanzen.o \ - $(PATH_TO_MSVCRT)/mbstring/ischira.o \ - $(PATH_TO_MSVCRT)/mbstring/iskana.o \ - $(PATH_TO_MSVCRT)/mbstring/iskpun.o \ - $(PATH_TO_MSVCRT)/mbstring/islead.o \ - $(PATH_TO_MSVCRT)/mbstring/islwr.o \ - $(PATH_TO_MSVCRT)/mbstring/iskmoji.o \ - $(PATH_TO_MSVCRT)/mbstring/ismbal.o \ - $(PATH_TO_MSVCRT)/mbstring/ismbaln.o \ - $(PATH_TO_MSVCRT)/mbstring/ismbc.o \ - $(PATH_TO_MSVCRT)/mbstring/ismbgra.o \ - $(PATH_TO_MSVCRT)/mbstring/ismbkaln.o \ - $(PATH_TO_MSVCRT)/mbstring/ismblead.o \ - $(PATH_TO_MSVCRT)/mbstring/ismbpri.o \ - $(PATH_TO_MSVCRT)/mbstring/ismbpun.o \ - $(PATH_TO_MSVCRT)/mbstring/ismbtrl.o \ - $(PATH_TO_MSVCRT)/mbstring/isuppr.o \ - $(PATH_TO_MSVCRT)/mbstring/jistojms.o \ - $(PATH_TO_MSVCRT)/mbstring/jmstojis.o \ - $(PATH_TO_MSVCRT)/mbstring/mbbtype.o \ - $(PATH_TO_MSVCRT)/mbstring/mbccpy.o \ - $(PATH_TO_MSVCRT)/mbstring/mbclen.o \ - $(PATH_TO_MSVCRT)/mbstring/mbscat.o \ - $(PATH_TO_MSVCRT)/mbstring/mbschr.o \ - $(PATH_TO_MSVCRT)/mbstring/mbscmp.o \ - $(PATH_TO_MSVCRT)/mbstring/mbscoll.o \ - $(PATH_TO_MSVCRT)/mbstring/mbscpy.o \ - $(PATH_TO_MSVCRT)/mbstring/mbscspn.o \ - $(PATH_TO_MSVCRT)/mbstring/mbsdec.o \ - $(PATH_TO_MSVCRT)/mbstring/mbsdup.o \ - $(PATH_TO_MSVCRT)/mbstring/mbsicmp.o \ - $(PATH_TO_MSVCRT)/mbstring/mbsicoll.o \ - $(PATH_TO_MSVCRT)/mbstring/mbsinc.o \ - $(PATH_TO_MSVCRT)/mbstring/mbslen.o \ - $(PATH_TO_MSVCRT)/mbstring/mbslwr.o \ - $(PATH_TO_MSVCRT)/mbstring/mbsncat.o \ - $(PATH_TO_MSVCRT)/mbstring/mbsnccnt.o \ - $(PATH_TO_MSVCRT)/mbstring/mbsncmp.o \ - $(PATH_TO_MSVCRT)/mbstring/mbsncoll.o \ - $(PATH_TO_MSVCRT)/mbstring/mbsncpy.o \ - $(PATH_TO_MSVCRT)/mbstring/mbsnextc.o \ - $(PATH_TO_MSVCRT)/mbstring/mbsnicmp.o \ - $(PATH_TO_MSVCRT)/mbstring/mbsnicoll.o \ - $(PATH_TO_MSVCRT)/mbstring/mbsninc.o \ - $(PATH_TO_MSVCRT)/mbstring/mbsnset.o \ - $(PATH_TO_MSVCRT)/mbstring/mbspbrk.o \ - $(PATH_TO_MSVCRT)/mbstring/mbsrchr.o \ - $(PATH_TO_MSVCRT)/mbstring/mbsrev.o \ - $(PATH_TO_MSVCRT)/mbstring/mbsset.o \ - $(PATH_TO_MSVCRT)/mbstring/mbsspn.o \ - $(PATH_TO_MSVCRT)/mbstring/mbsspnp.o \ - $(PATH_TO_MSVCRT)/mbstring/mbsstr.o \ - $(PATH_TO_MSVCRT)/mbstring/mbstok.o \ - $(PATH_TO_MSVCRT)/mbstring/mbstrlen.o \ - $(PATH_TO_MSVCRT)/mbstring/mbsupr.o - -MISC_OBJECTS = \ - misc/amsg.o \ - $(PATH_TO_MSVCRT)/misc/assert.o \ - misc/debug.o \ - misc/dllmain.o \ - misc/GetArgs.o \ - $(PATH_TO_MSVCRT)/misc/initterm.o \ - misc/purecall.o \ - misc/setnew.o - -PROCESS_OBJECTS = \ - process/_cwait.o \ - process/_system.o\ - $(PATH_TO_MSVCRT)/process/dll.o \ - process/spawnl.o \ - process/spawnlp.o \ - process/spawnlpe.o \ - process/spawnvp.o \ - process/spawnv.o \ - process/spawnve.o \ - process/spawnle.o \ - process/execl.o \ - process/execlp.o \ - process/execlpe.o \ - process/execvpe.o \ - process/execvp.o \ - process/execv.o \ - process/execle.o \ - process/execve.o \ - $(PATH_TO_MSVCRT)/process/procid.o \ - process/thread.o \ - $(PATH_TO_MSVCRT)/process/threadid.o - -QUAD_OBJECTS = \ - quad/qdivrem.o \ - quad/divdi3.o \ - quad/moddi3.o \ - quad/udivdi3.o \ - quad/umoddi3.o - -SEARCH_OBJECTS = \ - $(PATH_TO_MSVCRT)/search/lfind.o \ - $(PATH_TO_MSVCRT)/search/lsearch.o - -SETJMP_OBJECTS = \ - $(PATH_TO_MSVCRT)/setjmp/i386/setjmp.o - -SIGNAL_OBJECTS = \ - signal/xcptfil.o \ - signal/xcptinfo.o \ - $(PATH_TO_MSVCRT)/signal/signal.o - -STDIO_OBJECTS = \ - $(PATH_TO_MSVCRT)/stdio/allocfil.o \ - stdio/getenv.o \ - $(PATH_TO_MSVCRT)/stdio/clearerr.o \ - $(PATH_TO_MSVCRT)/stdio/fclose.o \ - $(PATH_TO_MSVCRT)/stdio/fdopen.o \ - $(PATH_TO_MSVCRT)/stdio/feof.o \ - stdio/ferror.o \ - stdio/fflush.o \ - $(PATH_TO_MSVCRT)/stdio/fgetc.o \ - stdio/fgetchar.o \ - $(PATH_TO_MSVCRT)/stdio/fgetpos.o \ - stdio/fgets.o \ - stdio/filbuf.o \ - stdio/fileno.o \ - $(PATH_TO_MSVCRT)/stdio/flsbuf.o \ - stdio/fopen.o \ - $(PATH_TO_MSVCRT)/stdio/fprintf.o \ - $(PATH_TO_MSVCRT)/stdio/fputc.o \ - stdio/fputchar.o\ - stdio/fputs.o \ - stdio/fread.o \ - stdio/freopen.o \ - stdio/fscanf.o \ - $(PATH_TO_MSVCRT)/stdio/fseek.o \ - $(PATH_TO_MSVCRT)/stdio/fsetpos.o \ - stdio/frlist.o \ - stdio/fsopen.o \ - stdio/ftell.o \ - $(PATH_TO_MSVCRT)/stdio/fwalk.o \ - stdio/fwrite.o \ - stdio/getc.o \ - stdio/getchar.o \ - stdio/gets.o \ - $(PATH_TO_MSVCRT)/stdio/getw.o \ - stdio/perror.o \ - stdio/popen.o \ - stdio/printf.o \ - stdio/putc.o \ - stdio/putchar.o \ - stdio/puts.o \ - $(PATH_TO_MSVCRT)/stdio/putw.o \ - stdio/remove.o \ - $(PATH_TO_MSVCRT)/stdio/rename.o \ - $(PATH_TO_MSVCRT)/stdio/rewind.o \ - $(PATH_TO_MSVCRT)/stdio/rmtmp.o \ - $(PATH_TO_MSVCRT)/stdio/scanf.o \ - $(PATH_TO_MSVCRT)/stdio/setbuf.o \ - stdio/setbuffe.o \ - stdio/setlineb.o \ - $(PATH_TO_MSVCRT)/stdio/setvbuf.o \ - $(PATH_TO_MSVCRT)/stdio/sprintf.o \ - $(PATH_TO_MSVCRT)/stdio/sscanf.o \ - $(PATH_TO_MSVCRT)/stdio/stdhnd.o \ - stdio/stdiohk.o \ - $(PATH_TO_MSVCRT)/stdio/tempnam.o \ - $(PATH_TO_MSVCRT)/stdio/tmpfile.o \ - $(PATH_TO_MSVCRT)/stdio/tmpnam.o \ - $(PATH_TO_MSVCRT)/stdio/ungetc.o \ - $(PATH_TO_MSVCRT)/stdio/vfprintf.o \ - $(PATH_TO_MSVCRT)/stdio/vfscanf.o \ - $(PATH_TO_MSVCRT)/stdio/vfwprint.o \ - $(PATH_TO_MSVCRT)/stdio/vprintf.o \ - $(PATH_TO_MSVCRT)/stdio/vscanf.o \ - $(PATH_TO_MSVCRT)/stdio/vsprintf.o \ - $(PATH_TO_MSVCRT)/stdio/vsscanf.o - -STDLIB_OBJECTS = \ - $(PATH_TO_MSVCRT)/stdlib/_exit.o \ - $(PATH_TO_MSVCRT)/stdlib/abort.o \ - $(PATH_TO_MSVCRT)/stdlib/abs.o \ - $(PATH_TO_MSVCRT)/stdlib/atexit.o \ - $(PATH_TO_MSVCRT)/stdlib/atof.o \ - $(PATH_TO_MSVCRT)/stdlib/atoi.o \ - $(PATH_TO_MSVCRT)/stdlib/atol.o \ - $(PATH_TO_MSVCRT)/stdlib/bsearch.o \ - $(PATH_TO_MSVCRT)/stdlib/div.o \ - $(PATH_TO_MSVCRT)/stdlib/ecvt.o \ - $(PATH_TO_MSVCRT)/stdlib/ecvtbuf.o \ - stdlib/errno.o \ - $(PATH_TO_MSVCRT)/stdlib/fcvt.o \ - $(PATH_TO_MSVCRT)/stdlib/fcvtbuf.o \ - stdlib/fullpath.o \ - $(PATH_TO_MSVCRT)/stdlib/gcvt.o \ - $(PATH_TO_MSVCRT)/stdlib/itoa.o \ - stdlib/itow.o \ - $(PATH_TO_MSVCRT)/stdlib/labs.o \ - $(PATH_TO_MSVCRT)/stdlib/ldiv.o \ - $(PATH_TO_MSVCRT)/stdlib/makepath.o \ - stdlib/malloc.o \ - stdlib/mbstowcs.o \ - $(PATH_TO_MSVCRT)/stdlib/obsol.o \ - stdlib/putenv.o \ - stdlib/qsort.o \ - stdlib/rand.o \ - $(PATH_TO_MSVCRT)/stdlib/rot.o \ - $(PATH_TO_MSVCRT)/stdlib/senv.o \ - $(PATH_TO_MSVCRT)/stdlib/splitp.o \ - $(PATH_TO_MSVCRT)/stdlib/strtod.o \ - $(PATH_TO_MSVCRT)/stdlib/strtol.o \ - $(PATH_TO_MSVCRT)/stdlib/strtoul.o \ - $(PATH_TO_MSVCRT)/stdlib/swab.o \ - $(PATH_TO_MSVCRT)/stdlib/wcstod.o \ - stdlib/wcstomb.o - -STRING_OBJECTS = \ - string/lasttok.o \ - $(PATH_TO_MSVCRT)/string/strcoll.o \ - $(PATH_TO_MSVCRT)/string/strdup.o \ - string/strerror.o \ - $(PATH_TO_MSVCRT)/string/strrev.o \ - $(PATH_TO_MSVCRT)/string/strset.o \ - $(PATH_TO_MSVCRT)/string/strtok.o \ - $(PATH_TO_MSVCRT)/string/strxfrm.o - -# string/str_old.o \ -# $(PATH_TO_MSVCRT)/string/memicmp.o \ -# $(PATH_TO_MSVCRT)/string/stricmp.o \ -# $(PATH_TO_MSVCRT)/string/strlwr.o \ -# $(PATH_TO_MSVCRT)/string/strnicmp.o \ -# $(PATH_TO_MSVCRT)/string/strpbrk.o \ -# $(PATH_TO_MSVCRT)/string/strstr.o \ -# $(PATH_TO_MSVCRT)/string/strupr.o \ - -SYS_STAT_OBJECTS = \ - sys_stat/fstat.o \ - $(PATH_TO_MSVCRT)/sys_stat/futime.o \ - sys_stat/ftime.o \ - sys_stat/systime.o \ - sys_stat/stat.o - -TCHAR_OBJECTS = \ - tchar/strdec.o \ - tchar/strinc.o \ - tchar/strninc.o \ - tchar/strncnt.o \ - tchar/strnextc.o \ - tchar/strspnp.o - -TIME_OBJECTS = \ - $(PATH_TO_MSVCRT)/time/time.o \ - $(PATH_TO_MSVCRT)/time/clock.o \ - $(PATH_TO_MSVCRT)/time/ctime.o \ - $(PATH_TO_MSVCRT)/time/difftime.o \ - $(PATH_TO_MSVCRT)/time/strdate.o \ - $(PATH_TO_MSVCRT)/time/strftime.o \ - $(PATH_TO_MSVCRT)/time/strtime.o \ - time/tz_vars.o - -WSTRING_OBJECTS = \ - wchar/wlasttok.o \ - wchar/wcscoll.o \ - $(PATH_TO_MSVCRT)/wstring/wcsdup.o \ - $(PATH_TO_MSVCRT)/wstring/wcsrev.o \ - $(PATH_TO_MSVCRT)/wstring/wcsset.o \ - $(PATH_TO_MSVCRT)/wstring/wcstok.o \ - $(PATH_TO_MSVCRT)/wstring/wcsxfrm.o - -# wchar/wcstod.o \ -# wchar/wcstok.o \ -# wchar/wcstol.o \ -# wchar/wtoi.o \ -# $(PATH_TO_MSVCRT)/wstring/wcscspn.o \ -# $(PATH_TO_MSVCRT)/wstring/wcsicmp.o \ -# $(PATH_TO_MSVCRT)/wstring/wcslwr.o \ -# $(PATH_TO_MSVCRT)/wstring/wcspbrk.o \ -# $(PATH_TO_MSVCRT)/wstring/wcsspn.o \ -# $(PATH_TO_MSVCRT)/wstring/wcsstr.o \ -# $(PATH_TO_MSVCRT)/wstring/wcsupr.o \ -# wchar/wcstombs.o \ -# $(PATH_TO_MSVCRT)/wstring/wcsnicmp.o -OBJECTS = \ - $(CONIO_OBJECTS) \ - $(CTYPE_OBJECTS) \ - $(DIRECT_OBJECTS) \ - $(EXCEPT_OBJECTS) \ - $(FLOAT_OBJECTS) \ - $(IO_OBJECTS) \ - $(LOCALE_OBJECTS) \ - $(MALLOC_OBJECTS) \ - $(MATH_OBJECTS) \ - $(MBSTRING_OBJECTS)\ - $(MISC_OBJECTS) \ - $(PROCESS_OBJECTS) \ - $(SEARCH_OBJECTS) \ - $(SETJMP_OBJECTS) \ - $(SIGNAL_OBJECTS) \ - $(STDIO_OBJECTS) \ - $(STDLIB_OBJECTS) \ - $(STRING_OBJECTS) \ - $(SYS_STAT_OBJECTS) \ - $(TCHAR_OBJECTS) \ - $(TIME_OBJECTS) \ - $(WSTRING_OBJECTS) +OBJECTS = dllmain.o $(TARGET_NAME).o: $(OBJECTS) $(LD) -r $(OBJECTS) -o $(TARGET_NAME).o + # EOF