Changeset 461 for trunk/src


Ignore:
Timestamp:
Aug 10, 1999, 12:10:09 AM (26 years ago)
Author:
phaller
Message:

Fix: fixes and updates for ODINCRT support

Location:
trunk/src
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/kernel32/HandleManager.cpp

    r382 r461  
    1 /* $Id: HandleManager.cpp,v 1.7 1999-07-24 12:38:58 sandervl Exp $ */
     1/* $Id: HandleManager.cpp,v 1.8 1999-08-09 22:10:07 phaller Exp $ */
    22
    33/*
     
    4646#include <stdlib.h>
    4747#include <string.h>
     48#include <odincrt.h>
     49
    4850#include "unicode.h"
    4951#include "misc.h"
     
    308310
    309311                        /* create handle manager instance for Open32 handles */
     312    ODIN_FS_BEGIN
    310313    HMGlobals.pHMOpen32     = new HMDeviceOpen32Class("\\\\.\\");
    311314    HMGlobals.pHMEvent      = new HMDeviceEventClass("\\\\EVENT\\");
    312315    HMGlobals.pHMMutex      = new HMDeviceMutexClass("\\\\MUTEX\\");
    313316    HMGlobals.pHMSemaphore  = new HMDeviceSemaphoreClass("\\\\SEM\\");
     317    ODIN_FS_END
    314318  }
    315319  return (NO_ERROR);
     
    333337  /* @@@PH we could deallocate the device list here */
    334338
     339  ODIN_FS_BEGIN
    335340  delete HMGlobals.pHMOpen32;
    336341  delete HMGlobals.pHMEvent;
    337342  delete HMGlobals.pHMMutex;
    338343  delete HMGlobals.pHMSemaphore;
     344  ODIN_FS_END
    339345
    340346  return (NO_ERROR);
  • trunk/src/kernel32/heap.cpp

    r408 r461  
    1 /* $Id: heap.cpp,v 1.9 1999-08-04 00:46:14 phaller Exp $ */
     1/* $Id: heap.cpp,v 1.10 1999-08-09 22:10:08 phaller Exp $ */
    22
    33/*
     
    1818#define  _WIN32
    1919#include "os2heap.h"
     20#include <odincrt.h>
    2021#include "heap.h"
    2122
     
    6869    return(NULL);
    6970
     71  ODIN_FS_BEGIN
    7072  curheap = new OS2Heap(hHeap, flOptions, dwInitialSize, dwMaximumSize);
    71   if(curheap == NULL) {
     73  ODIN_FS_END
     74
     75  if(curheap == NULL)
     76  {
    7277      O32_HeapDestroy(hHeap);
    7378        return(NULL);
    7479  }
    75   if(curheap->getHeapHandle() == NULL) {
    76       O32_HeapDestroy(hHeap);
    77         delete curheap;
    78         return(NULL);
     80
     81  if(curheap->getHeapHandle() == NULL)
     82  {
     83    O32_HeapDestroy(hHeap);
     84    ODIN_delete(curheap);
     85    return(NULL);
    7986  }
    8087  return(curheap->getHeapHandle());
     
    9097
    9198  O32_HeapDestroy(curheap->getHeapHandle());
    92   delete curheap;
     99  ODIN_delete(curheap);
    93100  return(TRUE);
    94101}
     
    151158      //TODO: I haven't thought real hard about this.  I added it just to make "hdr.exe" happy.
    152159      hHeap = O32_HeapCreate(HEAP_GENERATE_EXCEPTIONS, 1, 0x4000);
     160
     161      ODIN_FS_BEGIN
    153162      OS2ProcessHeap = new OS2Heap(hHeap, HEAP_GENERATE_EXCEPTIONS, 0x4000, 0);
     163      ODIN_FS_END
     164
    154165      if(OS2ProcessHeap == NULL) {
    155166         O32_HeapDestroy(hHeap);
  • trunk/src/kernel32/os2heap.cpp

    r404 r461  
    1 /* $Id: os2heap.cpp,v 1.5 1999-08-03 17:38:59 phaller Exp $ */
     1/* $Id: os2heap.cpp,v 1.6 1999-08-09 22:10:08 phaller Exp $ */
    22
    33/*
     
    1717#include <stdlib.h>
    1818#include <string.h>
     19#include <odincrt.h>
     20
    1921#include "win32type.h"
    2022#include "os2heap.h"
     
    5052  dprintf(("KERNEL32:  HeapCreate: initial size %d, max size %d (flags %X) returned %X\n", dwInitialSize, dwMaximumSize, flOptions, hPrimaryHeap));
    5153
    52   if(!(flOptions & HEAP_NO_SERIALIZE)) {
     54  if(!(flOptions & HEAP_NO_SERIALIZE))
     55  {
     56    ODIN_FS_BEGIN
    5357    hmutex = new VMutex();
     58    ODIN_FS_END
    5459    dassert(hmutex, ("ERROR: new VMutex\n"));
    5560  }
     
    8691    heapelem = hnext;
    8792  }
    88   if(hmutex) {
     93  if(hmutex)
     94  {
    8995    hmutex->leave();
    90     delete hmutex;
     96    ODIN_delete(hmutex);
    9197  }
    9298
  • trunk/src/kernel32/thread.cpp

    r281 r461  
    1 /* $Id: thread.cpp,v 1.7 1999-07-07 08:11:10 sandervl Exp $ */
     1/* $Id: thread.cpp,v 1.8 1999-08-09 22:10:08 phaller Exp $ */
    22
    33/*
     
    1212#include <os2win.h>
    1313#include <stdarg.h>
     14#include <odincrt.h>
    1415#include "thread.h"
    1516#include "except.h"
     
    2930                             LPDWORD lpIDThread)
    3031{
    31  Win32Thread *winthread = new Win32Thread(lpStartAddr, lpvThreadParm, fdwCreate);
     32 Win32Thread *winthread;
     33
     34 ODIN_FS_BEGIN
     35 winthread = new Win32Thread(lpStartAddr, lpvThreadParm, fdwCreate);
     36 ODIN_FS_END
    3237
    3338  if(winthread == 0)
     
    157162 DWORD            rc;
    158163
    159   delete me;    //only called once
     164 ODIN_delete(me)    //only called once
    160165
    161166  dprintf(("Win32ThreadProc %d\n", GetCurrentThreadId()));
  • trunk/src/kernel32/winimage.cpp

    r281 r461  
    1 /* $Id: winimage.cpp,v 1.5 1999-07-07 08:11:10 sandervl Exp $ */
     1/* $Id: winimage.cpp,v 1.6 1999-08-09 22:10:09 phaller Exp $ */
    22
    33/*
     
    1111 *
    1212 */
     13
    1314#define INCL_DOSFILEMGR          /* File Manager values      */
    1415#define INCL_DOSMODULEMGR
     
    1819#define INCL_WIN
    1920#define INCL_BASE
    20 #include <os2wrap.h>    //Odin32 OS/2 api wrappers
     21#include <os2wrap.h>             //Odin32 OS/2 api wrappers
     22
    2123#include <stdio.h>
    2224#include <string.h>
    2325#include <stdlib.h>
     26
     27#include <odincrt.h>
     28
    2429#include <iostream.h>
    2530#include <fstream.h>
     
    138143    DosFreeResource((PVOID)Win32Table);
    139144
    140   while(winres) {
     145  while(winres)
     146  {
    141147    res    = winres->next;
    142     delete winres;
     148    ODIN_delete(winres);
    143149    winres = res;
    144150  }
     
    301307            continue;
    302308        }
    303         if(IsImportSection(win32file, &psh[i])) 
     309        if(IsImportSection(win32file, &psh[i]))
    304310        {
    305311          int type = SECTION_IMPORT;
     
    975981    fout << "**********************************************************************" << endl;
    976982    WinDll = Win32Dll::findModule(pszCurModule);
    977     if(WinDll == NULL) {//not found, so load it
     983    if(WinDll == NULL)
     984     {  //not found, so load it
     985        ODIN_FS_BEGIN
    978986        WinDll = new Win32Dll(pszCurModule);
     987        ODIN_FS_END
    979988
    980989        if(WinDll == NULL) {
  • trunk/src/kernel32/wprocess.cpp

    r426 r461  
    1 /* $Id: wprocess.cpp,v 1.16 1999-08-05 19:50:34 phaller Exp $ */
     1/* $Id: wprocess.cpp,v 1.17 1999-08-09 22:10:09 phaller Exp $ */
    22
    33/*
     
    1414#include <stdlib.h>
    1515#include <string.h>
     16#include <odincrt.h>
     17
    1618#include "unicode.h"
    1719#include "windll.h"
     
    3537//Process database
    3638PDB       ProcessPDB = {0};
    37 USHORT    ProcessTIBSel = 0;
     39USHORT     ProcessTIBSel = 0;
    3840DWORD    *TIBFlatPtr    = 0;
    3941
     
    5557  winteb = (TEB *)*TIBFlatPtr;
    5658  if(winteb == NULL) {
    57         return NULL;
     59   return NULL;
    5860  }
    5961  thdb = (THDB *)(winteb+1);
     
    7476   TIBFlatPtr = (DWORD *)OS2AllocThreadLocalMemory(1);
    7577   if(TIBFlatPtr == 0) {
    76         dprintf(("InitializeTIB: local thread memory alloc failed!!"));
    77         DebugInt3();
    78         return NULL;
     78   dprintf(("InitializeTIB: local thread memory alloc failed!!"));
     79   DebugInt3();
     80   return NULL;
    7981   }
    8082   if(OS2AllocSel(PAGE_SIZE, &tibsel) == FALSE)
    8183   {
    82         dprintf(("InitializeTIB: selector alloc failed!!"));
    83         DebugInt3();
    84         return NULL;
     84   dprintf(("InitializeTIB: selector alloc failed!!"));
     85   DebugInt3();
     86   return NULL;
    8587   }
    8688   winteb = (TEB *)OS2SelToFlat(tibsel);
    8789   if(winteb == NULL)
    8890   {
    89         dprintf(("InitializeTIB: DosSelToFlat failed!!"));
    90         DebugInt3();
    91         return NULL;
     91   dprintf(("InitializeTIB: DosSelToFlat failed!!"));
     92   DebugInt3();
     93   return NULL;
    9294   }
    9395   memset(winteb, 0, PAGE_SIZE);
     
    114116   if(OS2GetPIB(PIB_TASKTYPE) == TASKTYPE_PM)
    115117   {
    116         thdb->flags      = 0;  //todo gui
    117    }
    118    else thdb->flags      = 0;  //todo textmode
     118   thdb->flags      = 0;  //todo gui
     119   }
     120   else  thdb->flags      = 0;  //todo textmode
    119121
    120122   if(fMainThread)
    121123   {
    122         //todo initialize PDB during process creation
     124   //todo initialize PDB during process creation
    123125        //todo: initialize TLS array if required
    124126        //TLS in executable always TLS index 0?
    125         ProcessTIBSel = tibsel;
     127   ProcessTIBSel = tibsel;
    126128   }
    127129   dprintf(("InitializeTIB setup TEB with selector %x", tibsel));
     
    143145   winteb = (TEB *)*TIBFlatPtr;
    144146   if(winteb) {
    145         thdb = (THDB *)(winteb+1);
    146         orgtibsel = thdb->OrgTIBSel;
    147 
    148         //Restore our original FS selector
    149         SetFS(orgtibsel);
    150 
    151         //And free our own
    152         OS2FreeSel(thdb->teb_sel);
     147   thdb = (THDB *)(winteb+1);
     148   orgtibsel = thdb->OrgTIBSel;
     149
     150   //Restore our original FS selector
     151      SetFS(orgtibsel);
     152
     153      //And free our own
     154      OS2FreeSel(thdb->teb_sel);
    153155   }
    154156   else dprintf(("Already destroyed TIB"));
     
    168170   winteb = (TEB *)*TIBFlatPtr;
    169171   if(winteb) {
    170         thdb = (THDB *)(winteb+1);
    171         orgtibsel = thdb->OrgTIBSel;
    172 
    173         //Restore our original FS selector
    174         SetFS(orgtibsel);
     172   thdb = (THDB *)(winteb+1);
     173   orgtibsel = thdb->OrgTIBSel;
     174
     175   //Restore our original FS selector
     176      SetFS(orgtibsel);
    175177   }
    176178}
     
    185187   winteb = (TEB *)*TIBFlatPtr;
    186188   if(winteb) {
    187         thdb = (THDB *)(winteb+1);
    188         win32tibsel = thdb->teb_sel;
    189 
    190         //Restore our win32 FS selector
    191         return SetReturnFS(win32tibsel);
     189   thdb = (THDB *)(winteb+1);
     190   win32tibsel = thdb->teb_sel;
     191
     192   //Restore our win32 FS selector
     193      return SetReturnFS(win32tibsel);
    192194   }
    193195   // nested calls are OK, OS2ToWinCallback for instance
     
    199201//******************************************************************************
    200202void WIN32API RegisterExe(WIN32EXEENTRY EntryPoint, PIMAGE_TLS_CALLBACK *TlsCallbackAddr,
    201                           LPDWORD TlsIndexAddr, ULONG TlsInitSize,
    202                           ULONG TlsTotalSize, LPVOID TlsAddress,
    203                           LONG Win32TableId, LONG NameTableId, LONG VersionResId,
    204                           LONG Pe2lxVersion, HINSTANCE hinstance, ULONG dwReserved)
     203           LPDWORD TlsIndexAddr, ULONG TlsInitSize,
     204           ULONG TlsTotalSize, LPVOID TlsAddress,
     205                 LONG Win32TableId, LONG NameTableId, LONG VersionResId,
     206                    LONG Pe2lxVersion, HINSTANCE hinstance, ULONG dwReserved)
    205207{
    206208  if(WinExe != NULL) //should never happen
    207     delete(WinExe);
     209    ODIN_delete(WinExe);
     210
    208211
    209212  CheckVersion(Pe2lxVersion, OS2GetDllName(hinstance));
     
    214217
    215218  //SvL: Use 0 instead of the real instance handle (for resource lookup)
    216   Win32Exe *winexe = new Win32Exe(0, NameTableId, Win32TableId);
     219  Win32Exe *winexe;
     220
     221  ODIN_FS_BEGIN
     222  winexe = new Win32Exe(0, NameTableId, Win32TableId);
     223  ODIN_FS_END
    217224
    218225  if(winexe) {
    219         dprintf(("RegisterExe Win32TableId = %x", Win32TableId));
    220         dprintf(("RegisterExe NameTableId  = %x", NameTableId));
    221         dprintf(("RegisterExe VersionResId = %x", VersionResId));
    222         dprintf(("RegisterExe Pe2lxVersion = %x", Pe2lxVersion));
    223 
    224         winexe->setVersionId(VersionResId);
    225         winexe->setOS2InstanceHandle(hinstance);
    226         winexe->setEntryPoint((ULONG)EntryPoint);
    227         winexe->setTLSAddress(TlsAddress);
    228         winexe->setTLSInitSize(TlsInitSize);
    229         winexe->setTLSTotalSize(TlsTotalSize);
    230         winexe->setTLSIndexAddr(TlsIndexAddr);
    231         winexe->setTLSCallBackAddr(TlsCallbackAddr);
    232 
    233         char *modname = getenv("WIN32MODULE");
    234 
    235         if(modname != NULL)
    236         {
    237                 dprintf(("Set full path for exe to %s", modname));
    238                 winexe->setFullPath(modname);
    239         }
    240         winexe->start();
     226   dprintf(("RegisterExe Win32TableId = %x", Win32TableId));
     227   dprintf(("RegisterExe NameTableId  = %x", NameTableId));
     228   dprintf(("RegisterExe VersionResId = %x", VersionResId));
     229   dprintf(("RegisterExe Pe2lxVersion = %x", Pe2lxVersion));
     230
     231      winexe->setVersionId(VersionResId);
     232      winexe->setOS2InstanceHandle(hinstance);
     233   winexe->setEntryPoint((ULONG)EntryPoint);
     234   winexe->setTLSAddress(TlsAddress);
     235   winexe->setTLSInitSize(TlsInitSize);
     236   winexe->setTLSTotalSize(TlsTotalSize);
     237   winexe->setTLSIndexAddr(TlsIndexAddr);
     238   winexe->setTLSCallBackAddr(TlsCallbackAddr);
     239
     240   char *modname = getenv("WIN32MODULE");
     241
     242   if(modname != NULL)
     243   {
     244         dprintf(("Set full path for exe to %s", modname));
     245         winexe->setFullPath(modname);
     246   }
     247   winexe->start();
    241248  }
    242249  else {
    243         eprintf(("Win32Exe creation failed!\n"));
    244         DebugInt3();
    245         return;
     250      eprintf(("Win32Exe creation failed!\n"));
     251      DebugInt3();
     252   return;
    246253  }
    247254}
     
    249256//******************************************************************************
    250257ULONG WIN32API RegisterDll(WIN32DLLENTRY pfnDllEntry, PIMAGE_TLS_CALLBACK *TlsCallbackAddr,
    251                            LPDWORD TlsIndexAddr, ULONG TlsInitSize,
    252                            ULONG TlsTotalSize, LPVOID TlsAddress,
    253                            LONG Win32TableId, LONG NameTableId, LONG VersionResId,
    254                            LONG Pe2lxVersion, HINSTANCE hinstance, ULONG dwAttachType)
     258            LPDWORD TlsIndexAddr, ULONG TlsInitSize,
     259            ULONG TlsTotalSize, LPVOID TlsAddress,
     260                  LONG Win32TableId, LONG NameTableId, LONG VersionResId,
     261                     LONG Pe2lxVersion, HINSTANCE hinstance, ULONG dwAttachType)
    255262{
    256263 char *name;
     
    259266  if(dwAttachType == 0)
    260267  { //Process attach
    261         if(getenv("WIN32_IOPL2")) {
    262                 io_init1();
    263         }
    264         name = OS2GetDllName(hinstance);
    265         CheckVersion(Pe2lxVersion, name);
    266 
    267         dprintf(("RegisterDll %X %s reason %d\n", hinstance, name, dwAttachType));
    268         dprintf(("RegisterDll Win32TableId = %x", Win32TableId));
    269         dprintf(("RegisterDll NameTableId  = %x", NameTableId));
    270         dprintf(("RegisterDll VersionResId = %x", VersionResId));
    271         dprintf(("RegisterDll Pe2lxVersion = %x", Pe2lxVersion));
    272 
    273         if(winmod != NULL) {
    274                 //dll manually loaded by PE loader (Win32Dll::init)
    275                 winmod->OS2DllInit(hinstance, NameTableId, Win32TableId, pfnDllEntry);
    276         }
    277         else {
    278                 //converted win32 dll loaded by OS/2 loader
    279                 winmod = new Win32Dll(hinstance, NameTableId, Win32TableId, pfnDllEntry);
    280                 if(winmod == NULL) {
    281                         eprintf(("Failed to allocate module object!\n"));
    282                         DebugInt3();
    283                         return 0;       //fail dll load
    284                 }
    285         }
    286         winmod->setTLSAddress(TlsAddress);
    287         winmod->setTLSInitSize(TlsInitSize);
    288         winmod->setTLSTotalSize(TlsTotalSize);
    289         winmod->setTLSIndexAddr(TlsIndexAddr);
    290         winmod->setTLSCallBackAddr(TlsCallbackAddr);
    291 
    292         /* @@@PH 1998/03/17 console devices initialization */
    293         iConsoleDevicesRegister();
    294 
    295         //SvL: 19-8-'98
    296         winmod->AddRef();
    297         winmod->setVersionId(VersionResId);
    298 
    299         winmod->attachProcess();
     268   if(getenv("WIN32_IOPL2")) {
     269         io_init1();
     270   }
     271   name = OS2GetDllName(hinstance);
     272   CheckVersion(Pe2lxVersion, name);
     273
     274   dprintf(("RegisterDll %X %s reason %d\n", hinstance, name, dwAttachType));
     275   dprintf(("RegisterDll Win32TableId = %x", Win32TableId));
     276   dprintf(("RegisterDll NameTableId  = %x", NameTableId));
     277   dprintf(("RegisterDll VersionResId = %x", VersionResId));
     278   dprintf(("RegisterDll Pe2lxVersion = %x", Pe2lxVersion));
     279
     280   if(winmod != NULL) {
     281         //dll manually loaded by PE loader (Win32Dll::init)
     282         winmod->OS2DllInit(hinstance, NameTableId, Win32TableId, pfnDllEntry);
     283   }
     284   else {
     285      //converted win32 dll loaded by OS/2 loader
     286      ODIN_FS_BEGIN
     287      winmod = new Win32Dll(hinstance, NameTableId, Win32TableId, pfnDllEntry);
     288      ODIN_FS_END
     289      if(winmod == NULL) {
     290            eprintf(("Failed to allocate module object!\n"));
     291            DebugInt3();
     292            return 0;                    //fail dll load
     293      }
     294   }
     295   winmod->setTLSAddress(TlsAddress);
     296   winmod->setTLSInitSize(TlsInitSize);
     297   winmod->setTLSTotalSize(TlsTotalSize);
     298   winmod->setTLSIndexAddr(TlsIndexAddr);
     299   winmod->setTLSCallBackAddr(TlsCallbackAddr);
     300
     301   /* @@@PH 1998/03/17 console devices initialization */
     302   iConsoleDevicesRegister();
     303
     304   //SvL: 19-8-'98
     305   winmod->AddRef();
     306   winmod->setVersionId(VersionResId);
     307
     308   winmod->attachProcess();
    300309   }
    301310   else {//process detach
    302         if(winmod != NULL && !fFreeLibrary) {
    303                 return 0;       //don't unload (OS/2 dll unload bug)
    304         }
     311   if(winmod != NULL && !fFreeLibrary) {
     312      return 0;   //don't unload (OS/2 dll unload bug)
     313   }
    305314//Runtime environment could already be gone, so don't do this
    306 //      dprintf(("KERNEL32: Dll Removed by FreeLibrary or ExitProcess\n"));
    307    }
    308    return 1;    //success
     315// dprintf(("KERNEL32: Dll Removed by FreeLibrary or ExitProcess\n"));
     316   }
     317   return 1;   //success
    309318}
    310319//******************************************************************************
     
    315324
    316325  if(WinExe) {
    317     delete WinExe;
     326    ODIN_delete(WinExe);
    318327    WinExe = NULL;
    319328  }
     
    386395        return module->getInstanceHandle();
    387396    }
     397
     398    ODIN_FS_BEGIN
    388399    module = new Win32Dll((char *)lpszLibFile);
     400    ODIN_FS_END
    389401    if(module == NULL)
    390402        return(0);
     
    393405    if(module->getError() != NO_ERROR) {
    394406        dprintf(("LoadLibary %s failed (::init)\n", lpszLibFile));
    395         delete module;
     407        ODIN_delete(module);
    396408        return(0);
    397409    }
    398410    if(module->attachProcess() == FALSE) {
    399411        dprintf(("LoadLibary %s failed (::attachProcess)\n", lpszLibFile));
    400         delete module;
     412        ODIN_delete(module);
    401413        return(0);
    402414    }
     
    456468        return module->getInstanceHandle();
    457469    }
     470
     471    ODIN_FS_BEGIN
    458472    module = new Win32Dll((char *)lpszLibFile);
     473    ODIN_FS_END
     474
    459475    if(module == NULL)
    460476        return(0);
     
    463479    if(module->getError() != NO_ERROR) {
    464480        dprintf(("LoadLibary %s failed (::init)\n", lpszLibFile));
    465         delete module;
     481        ODIN_delete(module);
    466482        return(0);
    467483    }
     
    471487    if(module->attachProcess() == FALSE) {
    472488        dprintf(("LoadLibary %s failed (::attachProcess)\n", lpszLibFile));
    473         delete module;
     489        ODIN_delete(module);
    474490        return(0);
    475491    }
     
    534550
    535551    if(WinExe) {
    536         asciicmdline = WinExe->getCommandLine();
     552      asciicmdline = WinExe->getCommandLine();
    537553    }
    538554    if(asciicmdline == NULL) //not used for converted exes
    539         asciicmdline = O32_GetCommandLine();
     555      asciicmdline = O32_GetCommandLine();
    540556
    541557    if(asciicmdline) {
     
    595611//******************************************************************************
    596612BOOL WIN32API CreateProcessA(LPCSTR lpszImageName, LPSTR lpszCommandLine,
    597                              PSECURITY_ATTRIBUTES arg3,
     613                       PSECURITY_ATTRIBUTES arg3,
    598614                             PSECURITY_ATTRIBUTES arg4, BOOL arg5, DWORD arg6,
    599615                             PVOID arg7, LPCSTR arg8, LPSTARTUPINFOA arg9,
  • trunk/src/odincrt/makefile

    r443 r461  
    1 # $Id: makefile,v 1.2 1999-08-09 18:10:50 achimha Exp $
     1# $Id: makefile,v 1.3 1999-08-09 22:10:09 phaller Exp $
    22
    33#
     
    3737
    3838
    39 odincrt.obj: odincrt.cpp odincrt.h
     39odincrt.obj: odincrt.cpp $(PDWIN32_INCLUDE)\odincrt.h
    4040initterm.obj: initterm.cpp
    4141odinfs.obj: odinfs.asm
Note: See TracChangeset for help on using the changeset viewer.