Made a number of changes to allow NufxLib to be used as a Win32 DLL.

This commit is contained in:
Andy McFadden 2002-12-06 01:04:20 +00:00
parent fef1a7bed5
commit 4c7aee4815
7 changed files with 984 additions and 133 deletions

View File

@ -104,7 +104,7 @@ Nu_ValidateNuArchive(const NuArchive* pArchive)
* =========================================================================== * ===========================================================================
*/ */
NuError NUFXLIB_API NuError
NuStreamOpenRO(FILE* infp, NuArchive** ppArchive) NuStreamOpenRO(FILE* infp, NuArchive** ppArchive)
{ {
NuError err; NuError err;
@ -117,7 +117,7 @@ NuStreamOpenRO(FILE* infp, NuArchive** ppArchive)
return err; return err;
} }
NuError NUFXLIB_API NuError
NuContents(NuArchive* pArchive, NuCallback contentFunc) NuContents(NuArchive* pArchive, NuCallback contentFunc)
{ {
NuError err; NuError err;
@ -134,7 +134,7 @@ NuContents(NuArchive* pArchive, NuCallback contentFunc)
return err; return err;
} }
NuError NUFXLIB_API NuError
NuExtract(NuArchive* pArchive) NuExtract(NuArchive* pArchive)
{ {
NuError err; NuError err;
@ -151,7 +151,7 @@ NuExtract(NuArchive* pArchive)
return err; return err;
} }
NuError NUFXLIB_API NuError
NuTest(NuArchive* pArchive) NuTest(NuArchive* pArchive)
{ {
NuError err; NuError err;
@ -175,7 +175,7 @@ NuTest(NuArchive* pArchive)
* =========================================================================== * ===========================================================================
*/ */
NuError NUFXLIB_API NuError
NuOpenRO(const char* filename, NuArchive** ppArchive) NuOpenRO(const char* filename, NuArchive** ppArchive)
{ {
NuError err; NuError err;
@ -185,7 +185,7 @@ NuOpenRO(const char* filename, NuArchive** ppArchive)
return err; return err;
} }
NuError NUFXLIB_API NuError
NuExtractRecord(NuArchive* pArchive, NuRecordIdx recordIdx) NuExtractRecord(NuArchive* pArchive, NuRecordIdx recordIdx)
{ {
NuError err; NuError err;
@ -199,7 +199,7 @@ NuExtractRecord(NuArchive* pArchive, NuRecordIdx recordIdx)
return err; return err;
} }
NuError NUFXLIB_API NuError
NuExtractThread(NuArchive* pArchive, NuThreadIdx threadIdx, NuExtractThread(NuArchive* pArchive, NuThreadIdx threadIdx,
NuDataSink* pDataSink) NuDataSink* pDataSink)
{ {
@ -214,7 +214,7 @@ NuExtractThread(NuArchive* pArchive, NuThreadIdx threadIdx,
return err; return err;
} }
NuError NUFXLIB_API NuError
NuGetRecord(NuArchive* pArchive, NuRecordIdx recordIdx, NuGetRecord(NuArchive* pArchive, NuRecordIdx recordIdx,
const NuRecord** ppRecord) const NuRecord** ppRecord)
{ {
@ -229,7 +229,7 @@ NuGetRecord(NuArchive* pArchive, NuRecordIdx recordIdx,
return err; return err;
} }
NuError NUFXLIB_API NuError
NuGetRecordIdxByName(NuArchive* pArchive, const char* name, NuGetRecordIdxByName(NuArchive* pArchive, const char* name,
NuRecordIdx* pRecordIdx) NuRecordIdx* pRecordIdx)
{ {
@ -244,7 +244,7 @@ NuGetRecordIdxByName(NuArchive* pArchive, const char* name,
return err; return err;
} }
NuError NUFXLIB_API NuError
NuGetRecordIdxByPosition(NuArchive* pArchive, unsigned long position, NuGetRecordIdxByPosition(NuArchive* pArchive, unsigned long position,
NuRecordIdx* pRecordIdx) NuRecordIdx* pRecordIdx)
{ {
@ -266,7 +266,7 @@ NuGetRecordIdxByPosition(NuArchive* pArchive, unsigned long position,
* =========================================================================== * ===========================================================================
*/ */
NuError NUFXLIB_API NuError
NuOpenRW(const char* archivePathname, const char* tmpPathname, NuOpenRW(const char* archivePathname, const char* tmpPathname,
unsigned long flags, NuArchive** ppArchive) unsigned long flags, NuArchive** ppArchive)
{ {
@ -278,7 +278,7 @@ NuOpenRW(const char* archivePathname, const char* tmpPathname,
return err; return err;
} }
NuError NUFXLIB_API NuError
NuFlush(NuArchive* pArchive, long* pStatusFlags) NuFlush(NuArchive* pArchive, long* pStatusFlags)
{ {
NuError err; NuError err;
@ -292,7 +292,7 @@ NuFlush(NuArchive* pArchive, long* pStatusFlags)
return err; return err;
} }
NuError NUFXLIB_API NuError
NuAbort(NuArchive* pArchive) NuAbort(NuArchive* pArchive)
{ {
NuError err; NuError err;
@ -306,7 +306,7 @@ NuAbort(NuArchive* pArchive)
return err; return err;
} }
NuError NUFXLIB_API NuError
NuAddRecord(NuArchive* pArchive, const NuFileDetails* pFileDetails, NuAddRecord(NuArchive* pArchive, const NuFileDetails* pFileDetails,
NuRecordIdx* pRecordIdx) NuRecordIdx* pRecordIdx)
{ {
@ -321,7 +321,7 @@ NuAddRecord(NuArchive* pArchive, const NuFileDetails* pFileDetails,
return err; return err;
} }
NuError NUFXLIB_API NuError
NuAddThread(NuArchive* pArchive, NuRecordIdx recordIdx, NuThreadID threadID, NuAddThread(NuArchive* pArchive, NuRecordIdx recordIdx, NuThreadID threadID,
NuDataSource* pDataSource, NuThreadIdx* pThreadIdx) NuDataSource* pDataSource, NuThreadIdx* pThreadIdx)
{ {
@ -337,7 +337,7 @@ NuAddThread(NuArchive* pArchive, NuRecordIdx recordIdx, NuThreadID threadID,
return err; return err;
} }
NuError NUFXLIB_API NuError
NuAddFile(NuArchive* pArchive, const char* pathname, NuAddFile(NuArchive* pArchive, const char* pathname,
const NuFileDetails* pFileDetails, short isFromRsrcFork, const NuFileDetails* pFileDetails, short isFromRsrcFork,
NuRecordIdx* pRecordIdx) NuRecordIdx* pRecordIdx)
@ -354,7 +354,7 @@ NuAddFile(NuArchive* pArchive, const char* pathname,
return err; return err;
} }
NuError NUFXLIB_API NuError
NuRename(NuArchive* pArchive, NuRecordIdx recordIdx, const char* pathname, NuRename(NuArchive* pArchive, NuRecordIdx recordIdx, const char* pathname,
char fssep) char fssep)
{ {
@ -370,7 +370,7 @@ NuRename(NuArchive* pArchive, NuRecordIdx recordIdx, const char* pathname,
} }
NuError NUFXLIB_API NuError
NuSetRecordAttr(NuArchive* pArchive, NuRecordIdx recordIdx, NuSetRecordAttr(NuArchive* pArchive, NuRecordIdx recordIdx,
const NuRecordAttr* pRecordAttr) const NuRecordAttr* pRecordAttr)
{ {
@ -385,7 +385,7 @@ NuSetRecordAttr(NuArchive* pArchive, NuRecordIdx recordIdx,
return err; return err;
} }
NuError NUFXLIB_API NuError
NuUpdatePresizedThread(NuArchive* pArchive, NuThreadIdx threadIdx, NuUpdatePresizedThread(NuArchive* pArchive, NuThreadIdx threadIdx,
NuDataSource* pDataSource, long* pMaxLen) NuDataSource* pDataSource, long* pMaxLen)
{ {
@ -401,7 +401,7 @@ NuUpdatePresizedThread(NuArchive* pArchive, NuThreadIdx threadIdx,
return err; return err;
} }
NuError NUFXLIB_API NuError
NuDelete(NuArchive* pArchive) NuDelete(NuArchive* pArchive)
{ {
NuError err; NuError err;
@ -415,7 +415,7 @@ NuDelete(NuArchive* pArchive)
return err; return err;
} }
NuError NUFXLIB_API NuError
NuDeleteRecord(NuArchive* pArchive, NuRecordIdx recordIdx) NuDeleteRecord(NuArchive* pArchive, NuRecordIdx recordIdx)
{ {
NuError err; NuError err;
@ -429,7 +429,7 @@ NuDeleteRecord(NuArchive* pArchive, NuRecordIdx recordIdx)
return err; return err;
} }
NuError NUFXLIB_API NuError
NuDeleteThread(NuArchive* pArchive, NuThreadIdx threadIdx) NuDeleteThread(NuArchive* pArchive, NuThreadIdx threadIdx)
{ {
NuError err; NuError err;
@ -450,7 +450,7 @@ NuDeleteThread(NuArchive* pArchive, NuThreadIdx threadIdx)
* =========================================================================== * ===========================================================================
*/ */
NuError NUFXLIB_API NuError
NuClose(NuArchive* pArchive) NuClose(NuArchive* pArchive)
{ {
NuError err; NuError err;
@ -466,7 +466,7 @@ NuClose(NuArchive* pArchive)
return err; return err;
} }
NuError NUFXLIB_API NuError
NuGetMasterHeader(NuArchive* pArchive, const NuMasterHeader** ppMasterHeader) NuGetMasterHeader(NuArchive* pArchive, const NuMasterHeader** ppMasterHeader)
{ {
NuError err; NuError err;
@ -477,7 +477,7 @@ NuGetMasterHeader(NuArchive* pArchive, const NuMasterHeader** ppMasterHeader)
return err; return err;
} }
NuError NUFXLIB_API NuError
NuGetExtraData(NuArchive* pArchive, void** ppData) NuGetExtraData(NuArchive* pArchive, void** ppData)
{ {
NuError err; NuError err;
@ -490,7 +490,7 @@ NuGetExtraData(NuArchive* pArchive, void** ppData)
return err; return err;
} }
NuError NUFXLIB_API NuError
NuSetExtraData(NuArchive* pArchive, void* pData) NuSetExtraData(NuArchive* pArchive, void* pData)
{ {
NuError err; NuError err;
@ -501,7 +501,7 @@ NuSetExtraData(NuArchive* pArchive, void* pData)
return err; return err;
} }
NuError NUFXLIB_API NuError
NuGetValue(NuArchive* pArchive, NuValueID ident, NuValue* pValue) NuGetValue(NuArchive* pArchive, NuValueID ident, NuValue* pValue)
{ {
NuError err; NuError err;
@ -512,7 +512,7 @@ NuGetValue(NuArchive* pArchive, NuValueID ident, NuValue* pValue)
return err; return err;
} }
NuError NUFXLIB_API NuError
NuSetValue(NuArchive* pArchive, NuValueID ident, NuValue value) NuSetValue(NuArchive* pArchive, NuValueID ident, NuValue value)
{ {
NuError err; NuError err;
@ -523,7 +523,7 @@ NuSetValue(NuArchive* pArchive, NuValueID ident, NuValue value)
return err; return err;
} }
NuError NUFXLIB_API NuError
NuGetAttr(NuArchive* pArchive, NuAttrID ident, NuAttr* pAttr) NuGetAttr(NuArchive* pArchive, NuAttrID ident, NuAttr* pAttr)
{ {
NuError err; NuError err;
@ -534,7 +534,7 @@ NuGetAttr(NuArchive* pArchive, NuAttrID ident, NuAttr* pAttr)
return err; return err;
} }
NuError NUFXLIB_API NuError
NuDebugDumpArchive(NuArchive* pArchive) NuDebugDumpArchive(NuArchive* pArchive)
{ {
#if defined(DEBUG_MSGS) #if defined(DEBUG_MSGS)
@ -554,7 +554,7 @@ NuDebugDumpArchive(NuArchive* pArchive)
* =========================================================================== * ===========================================================================
*/ */
NuError NUFXLIB_API NuError
NuCreateDataSourceForFile(NuThreadFormat threadFormat, short doClose, NuCreateDataSourceForFile(NuThreadFormat threadFormat, short doClose,
unsigned long otherLen, const char* pathname, short isFromRsrcFork, unsigned long otherLen, const char* pathname, short isFromRsrcFork,
NuDataSource** ppDataSource) NuDataSource** ppDataSource)
@ -563,7 +563,7 @@ NuCreateDataSourceForFile(NuThreadFormat threadFormat, short doClose,
otherLen, pathname, (Boolean)(isFromRsrcFork != 0), ppDataSource); otherLen, pathname, (Boolean)(isFromRsrcFork != 0), ppDataSource);
} }
NuError NUFXLIB_API NuError
NuCreateDataSourceForFP(NuThreadFormat threadFormat, short doClose, NuCreateDataSourceForFP(NuThreadFormat threadFormat, short doClose,
unsigned long otherLen, FILE* fp, long offset, long length, unsigned long otherLen, FILE* fp, long offset, long length,
NuDataSource** ppDataSource) NuDataSource** ppDataSource)
@ -572,7 +572,7 @@ NuCreateDataSourceForFP(NuThreadFormat threadFormat, short doClose,
otherLen, fp, offset, length, ppDataSource); otherLen, fp, offset, length, ppDataSource);
} }
NuError NUFXLIB_API NuError
NuCreateDataSourceForBuffer(NuThreadFormat threadFormat, short doClose, NuCreateDataSourceForBuffer(NuThreadFormat threadFormat, short doClose,
unsigned long otherLen, const unsigned char* buffer, long offset, unsigned long otherLen, const unsigned char* buffer, long offset,
long length, NuDataSource** ppDataSource) long length, NuDataSource** ppDataSource)
@ -581,13 +581,13 @@ NuCreateDataSourceForBuffer(NuThreadFormat threadFormat, short doClose,
otherLen, buffer, offset, length, ppDataSource); otherLen, buffer, offset, length, ppDataSource);
} }
NuError NUFXLIB_API NuError
NuFreeDataSource(NuDataSource* pDataSource) NuFreeDataSource(NuDataSource* pDataSource)
{ {
return Nu_DataSourceFree(pDataSource); return Nu_DataSourceFree(pDataSource);
} }
NuError NUFXLIB_API NuError
NuDataSourceSetRawCrc(NuDataSource* pDataSource, unsigned short crc) NuDataSourceSetRawCrc(NuDataSource* pDataSource, unsigned short crc)
{ {
if (pDataSource == nil) if (pDataSource == nil)
@ -596,7 +596,7 @@ NuDataSourceSetRawCrc(NuDataSource* pDataSource, unsigned short crc)
return kNuErrNone; return kNuErrNone;
} }
NuError NUFXLIB_API NuError
NuCreateDataSinkForFile(short doExpand, NuValue convertEOL, NuCreateDataSinkForFile(short doExpand, NuValue convertEOL,
const char* pathname, char fssep, NuDataSink** ppDataSink) const char* pathname, char fssep, NuDataSink** ppDataSink)
{ {
@ -604,7 +604,7 @@ NuCreateDataSinkForFile(short doExpand, NuValue convertEOL,
fssep, ppDataSink); fssep, ppDataSink);
} }
NuError NUFXLIB_API NuError
NuCreateDataSinkForFP(short doExpand, NuValue convertEOL, FILE* fp, NuCreateDataSinkForFP(short doExpand, NuValue convertEOL, FILE* fp,
NuDataSink** ppDataSink) NuDataSink** ppDataSink)
{ {
@ -612,7 +612,7 @@ NuCreateDataSinkForFP(short doExpand, NuValue convertEOL, FILE* fp,
ppDataSink); ppDataSink);
} }
NuError NUFXLIB_API NuError
NuCreateDataSinkForBuffer(short doExpand, NuValue convertEOL, NuCreateDataSinkForBuffer(short doExpand, NuValue convertEOL,
unsigned char* buffer, unsigned long bufLen, NuDataSink** ppDataSink) unsigned char* buffer, unsigned long bufLen, NuDataSink** ppDataSink)
{ {
@ -620,13 +620,13 @@ NuCreateDataSinkForBuffer(short doExpand, NuValue convertEOL,
bufLen, ppDataSink); bufLen, ppDataSink);
} }
NuError NUFXLIB_API NuError
NuFreeDataSink(NuDataSink* pDataSink) NuFreeDataSink(NuDataSink* pDataSink)
{ {
return Nu_DataSinkFree(pDataSink); return Nu_DataSinkFree(pDataSink);
} }
NuError NUFXLIB_API NuError
NuDataSinkGetOutCount(NuDataSink* pDataSink, ulong* pOutCount) NuDataSinkGetOutCount(NuDataSink* pDataSink, ulong* pOutCount)
{ {
if (pDataSink == nil || pOutCount == nil) if (pDataSink == nil || pOutCount == nil)
@ -643,13 +643,13 @@ NuDataSinkGetOutCount(NuDataSink* pDataSink, ulong* pOutCount)
* =========================================================================== * ===========================================================================
*/ */
const char* NUFXLIB_API const char*
NuStrError(NuError err) NuStrError(NuError err)
{ {
return Nu_StrError(err); return Nu_StrError(err);
} }
NuError NUFXLIB_API NuError
NuGetVersion(long* pMajorVersion, long* pMinorVersion, long* pBugVersion, NuGetVersion(long* pMajorVersion, long* pMinorVersion, long* pBugVersion,
const char** ppBuildDate, const char** ppBuildFlags) const char** ppBuildDate, const char** ppBuildFlags)
{ {
@ -657,7 +657,7 @@ NuGetVersion(long* pMajorVersion, long* pMinorVersion, long* pBugVersion,
ppBuildDate, ppBuildFlags); ppBuildDate, ppBuildFlags);
} }
NuError NUFXLIB_API NuError
NuTestFeature(NuFeature feature) NuTestFeature(NuFeature feature)
{ {
NuError err = kNuErrUnsupFeature; NuError err = kNuErrUnsupFeature;
@ -696,7 +696,7 @@ NuTestFeature(NuFeature feature)
return err; return err;
} }
void NUFXLIB_API void
NuRecordCopyAttr(NuRecordAttr* pRecordAttr, const NuRecord* pRecord) NuRecordCopyAttr(NuRecordAttr* pRecordAttr, const NuRecord* pRecord)
{ {
pRecordAttr->fileSysID = pRecord->recFileSysID; pRecordAttr->fileSysID = pRecord->recFileSysID;
@ -709,7 +709,7 @@ NuRecordCopyAttr(NuRecordAttr* pRecordAttr, const NuRecord* pRecord)
pRecordAttr->archiveWhen = pRecord->recArchiveWhen; pRecordAttr->archiveWhen = pRecord->recArchiveWhen;
} }
NuError NUFXLIB_API NuError
NuRecordCopyThreads(const NuRecord* pNuRecord, NuThread** ppThreads) NuRecordCopyThreads(const NuRecord* pNuRecord, NuThread** ppThreads)
{ {
if (pNuRecord == nil || ppThreads == nil) if (pNuRecord == nil || ppThreads == nil)
@ -727,7 +727,7 @@ NuRecordCopyThreads(const NuRecord* pNuRecord, NuThread** ppThreads)
return kNuErrNone; return kNuErrNone;
} }
unsigned long NUFXLIB_API unsigned long
NuRecordGetNumThreads(const NuRecord* pNuRecord) NuRecordGetNumThreads(const NuRecord* pNuRecord)
{ {
if (pNuRecord == nil) if (pNuRecord == nil)
@ -736,7 +736,7 @@ NuRecordGetNumThreads(const NuRecord* pNuRecord)
return pNuRecord->recTotalThreads; return pNuRecord->recTotalThreads;
} }
const NuThread* NUFXLIB_API const NuThread*
NuThreadGetByIdx(const NuThread* pNuThread, long idx) NuThreadGetByIdx(const NuThread* pNuThread, long idx)
{ {
if (pNuThread == nil) if (pNuThread == nil)
@ -744,7 +744,7 @@ NuThreadGetByIdx(const NuThread* pNuThread, long idx)
return &pNuThread[idx]; /* can't range-check here */ return &pNuThread[idx]; /* can't range-check here */
} }
short NUFXLIB_API short
NuIsPresizedThreadID(NuThreadID threadID) NuIsPresizedThreadID(NuThreadID threadID)
{ {
return Nu_IsPresizedThreadID(threadID); return Nu_IsPresizedThreadID(threadID);
@ -757,7 +757,7 @@ NuIsPresizedThreadID(NuThreadID threadID)
* =========================================================================== * ===========================================================================
*/ */
NuError NUFXLIB_API NuError
NuSetSelectionFilter(NuArchive* pArchive, NuCallback filterFunc) NuSetSelectionFilter(NuArchive* pArchive, NuCallback filterFunc)
{ {
NuError err; NuError err;
@ -770,7 +770,7 @@ NuSetSelectionFilter(NuArchive* pArchive, NuCallback filterFunc)
return err; return err;
} }
NuError NUFXLIB_API NuError
NuSetOutputPathnameFilter(NuArchive* pArchive, NuCallback filterFunc) NuSetOutputPathnameFilter(NuArchive* pArchive, NuCallback filterFunc)
{ {
NuError err; NuError err;
@ -783,7 +783,7 @@ NuSetOutputPathnameFilter(NuArchive* pArchive, NuCallback filterFunc)
return err; return err;
} }
NuError NUFXLIB_API NuError
NuSetProgressUpdater(NuArchive* pArchive, NuCallback updateFunc) NuSetProgressUpdater(NuArchive* pArchive, NuCallback updateFunc)
{ {
NuError err; NuError err;
@ -796,7 +796,7 @@ NuSetProgressUpdater(NuArchive* pArchive, NuCallback updateFunc)
return err; return err;
} }
NuError NUFXLIB_API NuError
NuSetErrorHandler(NuArchive* pArchive, NuCallback errorFunc) NuSetErrorHandler(NuArchive* pArchive, NuCallback errorFunc)
{ {
NuError err; NuError err;
@ -809,7 +809,7 @@ NuSetErrorHandler(NuArchive* pArchive, NuCallback errorFunc)
return err; return err;
} }
NuError NUFXLIB_API NuError
NuSetErrorMessageHandler(NuArchive* pArchive, NuCallback messageHandlerFunc) NuSetErrorMessageHandler(NuArchive* pArchive, NuCallback messageHandlerFunc)
{ {
NuError err; NuError err;
@ -822,7 +822,7 @@ NuSetErrorMessageHandler(NuArchive* pArchive, NuCallback messageHandlerFunc)
return err; return err;
} }
NuError NUFXLIB_API NuError
NuSetGlobalErrorMessageHandler(NuCallback messageHandlerFunc) NuSetGlobalErrorMessageHandler(NuCallback messageHandlerFunc)
{ {
/*Assert(!((ulong)messageHandlerFunc % 4));*/ /*Assert(!((ulong)messageHandlerFunc % 4));*/

View File

@ -37,7 +37,9 @@ typedef int FLAG;
#endif #endif
#define CONST const #define CONST const
#define FAR #ifndef FAR
# define FAR
#endif
#define NULLPTR(type) ((type FAR *) NULL) #define NULLPTR(type) ((type FAR *) NULL)
#define ALLOCTYPE void #define ALLOCTYPE void

776
nufxlib-0/Makefile.dll Executable file
View File

@ -0,0 +1,776 @@
#
# Makefile for building nufxlib as a DLL under Visual C++ (tested with 6.0).
#
# Run with "nmake /f Makefile.dll".
#
# To build without debugging info, use "nmake nodebug=1".
# To build with libz, use "nmake libz=1".
# To build with libbz2, use "nmake libbz2=1".
#
# For libz/libbz2, you need to have the appropriate library either
# in this directory or in a standard location that the linker can find
#
CFG=nufxlib - Win32 Debug
!ifdef NODEBUG
CFG=nufxlib - Win32 Release
!endif
MY_BUILD_FLAGS=
MY_LIB_FLAGS=
!ifdef LIBZ
MY_BUILD_FLAGS = $(MY_BUILD_FLAGS) /D "ENABLE_DEFLATE"
MY_LIB_FLAGS = zlib.lib $(MY_LIB_FLAGS)
!endif
!ifdef LIBBZ2
MY_BUILD_FLAGS = $(MY_BUILD_FLAGS) /D "ENABLE_BZIP2"
MY_LIB_FLAGS = libbz2.lib $(MY_LIB_FLAGS)
!endif
# Microsoft Developer Studio Generated NMAKE File, Based on nufxlib.dsp
!IF "$(CFG)" == ""
CFG=nufxlib - Win32 Debug
!MESSAGE No configuration specified. Defaulting to nufxlib - Win32 Debug.
!ENDIF
!IF "$(CFG)" != "nufxlib - Win32 Release" && "$(CFG)" != "nufxlib - Win32 Debug"
!MESSAGE Invalid configuration "$(CFG)" specified.
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "nufxlib.mak" CFG="nufxlib - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "nufxlib - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE "nufxlib - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE
!ERROR An invalid configuration is specified.
!ENDIF
!IF "$(OS)" == "Windows_NT"
NULL=
!ELSE
NULL=nul
!ENDIF
!IF "$(CFG)" == "nufxlib - Win32 Release"
OUTDIR=.\Release
INTDIR=.\Release
# Begin Custom Macros
OutDir=.\Release
# End Custom Macros
ALL : "$(OUTDIR)\nufxlib.dll"
CLEAN :
-@erase "$(INTDIR)\Archive.obj"
-@erase "$(INTDIR)\ArchiveIO.obj"
-@erase "$(INTDIR)\Bzip2.obj"
-@erase "$(INTDIR)\Compress.obj"
-@erase "$(INTDIR)\Crc16.obj"
-@erase "$(INTDIR)\Debug.obj"
-@erase "$(INTDIR)\Deferred.obj"
-@erase "$(INTDIR)\Deflate.obj"
-@erase "$(INTDIR)\Entry.obj"
-@erase "$(INTDIR)\Expand.obj"
-@erase "$(INTDIR)\FileIO.obj"
-@erase "$(INTDIR)\Funnel.obj"
-@erase "$(INTDIR)\Lzc.obj"
-@erase "$(INTDIR)\Lzw.obj"
-@erase "$(INTDIR)\MiscStuff.obj"
-@erase "$(INTDIR)\MiscUtils.obj"
-@erase "$(INTDIR)\Record.obj"
-@erase "$(INTDIR)\SourceSink.obj"
-@erase "$(INTDIR)\Squeeze.obj"
-@erase "$(INTDIR)\Thread.obj"
-@erase "$(INTDIR)\Value.obj"
-@erase "$(INTDIR)\vc60.idb"
-@erase "$(INTDIR)\Version.obj"
-@erase "$(OUTDIR)\nufxlib.dll"
-@erase "$(OUTDIR)\nufxlib.exp"
-@erase "$(OUTDIR)\nufxlib.lib"
"$(OUTDIR)" :
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
CPP=cl.exe
CPP_PROJ=/nologo /MD /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "NUFXLIB_EXPORTS" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c $(MY_BUILD_FLAGS)
.c{$(INTDIR)}.obj::
$(CPP) @<<
$(CPP_PROJ) $<
<<
.cpp{$(INTDIR)}.obj::
$(CPP) @<<
$(CPP_PROJ) $<
<<
.cxx{$(INTDIR)}.obj::
$(CPP) @<<
$(CPP_PROJ) $<
<<
.c{$(INTDIR)}.sbr::
$(CPP) @<<
$(CPP_PROJ) $<
<<
.cpp{$(INTDIR)}.sbr::
$(CPP) @<<
$(CPP_PROJ) $<
<<
.cxx{$(INTDIR)}.sbr::
$(CPP) @<<
$(CPP_PROJ) $<
<<
MTL=midl.exe
MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /win32
RSC=rc.exe
BSC32=bscmake.exe
BSC32_FLAGS=/nologo /o"$(OUTDIR)\nufxlib.bsc"
BSC32_SBRS= \
LINK32=link.exe
LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib $(MY_LIB_FLAGS) /nologo /dll /incremental:no /pdb:"$(OUTDIR)\nufxlib.pdb" /machine:I386 /out:"$(OUTDIR)\nufxlib.dll" /implib:"$(OUTDIR)\nufxlib.lib"
LINK32_OBJS= \
"$(INTDIR)\Archive.obj" \
"$(INTDIR)\ArchiveIO.obj" \
"$(INTDIR)\Bzip2.obj" \
"$(INTDIR)\Compress.obj" \
"$(INTDIR)\Crc16.obj" \
"$(INTDIR)\Debug.obj" \
"$(INTDIR)\Deferred.obj" \
"$(INTDIR)\Deflate.obj" \
"$(INTDIR)\Entry.obj" \
"$(INTDIR)\Expand.obj" \
"$(INTDIR)\FileIO.obj" \
"$(INTDIR)\Funnel.obj" \
"$(INTDIR)\Lzc.obj" \
"$(INTDIR)\Lzw.obj" \
"$(INTDIR)\MiscStuff.obj" \
"$(INTDIR)\MiscUtils.obj" \
"$(INTDIR)\Record.obj" \
"$(INTDIR)\SourceSink.obj" \
"$(INTDIR)\Squeeze.obj" \
"$(INTDIR)\Thread.obj" \
"$(INTDIR)\Value.obj" \
"$(INTDIR)\Version.obj"
"$(OUTDIR)\nufxlib.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
$(LINK32) @<<
$(LINK32_FLAGS) $(LINK32_OBJS)
<<
SOURCE="$(InputPath)"
DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep
ALL : $(DS_POSTBUILD_DEP)
# Begin Custom Macros
OutDir=.\Release
# End Custom Macros
$(DS_POSTBUILD_DEP) : "$(OUTDIR)\nufxlib.dll"
copy Release\nufxlib.dll .
copy Release\nufxlib.lib .
echo Helper for Post-build step > "$(DS_POSTBUILD_DEP)"
!ELSEIF "$(CFG)" == "nufxlib - Win32 Debug"
OUTDIR=.\Debug
INTDIR=.\Debug
# Begin Custom Macros
OutDir=.\Debug
# End Custom Macros
ALL : "$(OUTDIR)\nufxlib.dll" "$(OUTDIR)\nufxlib.bsc"
CLEAN :
-@erase "$(INTDIR)\Archive.obj"
-@erase "$(INTDIR)\Archive.sbr"
-@erase "$(INTDIR)\ArchiveIO.obj"
-@erase "$(INTDIR)\ArchiveIO.sbr"
-@erase "$(INTDIR)\Bzip2.obj"
-@erase "$(INTDIR)\Bzip2.sbr"
-@erase "$(INTDIR)\Compress.obj"
-@erase "$(INTDIR)\Compress.sbr"
-@erase "$(INTDIR)\Crc16.obj"
-@erase "$(INTDIR)\Crc16.sbr"
-@erase "$(INTDIR)\Debug.obj"
-@erase "$(INTDIR)\Debug.sbr"
-@erase "$(INTDIR)\Deferred.obj"
-@erase "$(INTDIR)\Deferred.sbr"
-@erase "$(INTDIR)\Deflate.obj"
-@erase "$(INTDIR)\Deflate.sbr"
-@erase "$(INTDIR)\Entry.obj"
-@erase "$(INTDIR)\Entry.sbr"
-@erase "$(INTDIR)\Expand.obj"
-@erase "$(INTDIR)\Expand.sbr"
-@erase "$(INTDIR)\FileIO.obj"
-@erase "$(INTDIR)\FileIO.sbr"
-@erase "$(INTDIR)\Funnel.obj"
-@erase "$(INTDIR)\Funnel.sbr"
-@erase "$(INTDIR)\Lzc.obj"
-@erase "$(INTDIR)\Lzc.sbr"
-@erase "$(INTDIR)\Lzw.obj"
-@erase "$(INTDIR)\Lzw.sbr"
-@erase "$(INTDIR)\MiscStuff.obj"
-@erase "$(INTDIR)\MiscStuff.sbr"
-@erase "$(INTDIR)\MiscUtils.obj"
-@erase "$(INTDIR)\MiscUtils.sbr"
-@erase "$(INTDIR)\Record.obj"
-@erase "$(INTDIR)\Record.sbr"
-@erase "$(INTDIR)\SourceSink.obj"
-@erase "$(INTDIR)\SourceSink.sbr"
-@erase "$(INTDIR)\Squeeze.obj"
-@erase "$(INTDIR)\Squeeze.sbr"
-@erase "$(INTDIR)\Thread.obj"
-@erase "$(INTDIR)\Thread.sbr"
-@erase "$(INTDIR)\Value.obj"
-@erase "$(INTDIR)\Value.sbr"
-@erase "$(INTDIR)\vc60.idb"
-@erase "$(INTDIR)\vc60.pdb"
-@erase "$(INTDIR)\Version.obj"
-@erase "$(INTDIR)\Version.sbr"
-@erase "$(OUTDIR)\nufxlib.bsc"
-@erase "$(OUTDIR)\nufxlib.dll"
-@erase "$(OUTDIR)\nufxlib.exp"
-@erase "$(OUTDIR)\nufxlib.ilk"
-@erase "$(OUTDIR)\nufxlib.lib"
-@erase "$(OUTDIR)\nufxlib.pdb"
"$(OUTDIR)" :
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
CPP=cl.exe
CPP_PROJ=/nologo /MDd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "NUFXLIB_EXPORTS" /FR"$(INTDIR)\\" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c $(MY_BUILD_FLAGS)
.c{$(INTDIR)}.obj::
$(CPP) @<<
$(CPP_PROJ) $<
<<
.cpp{$(INTDIR)}.obj::
$(CPP) @<<
$(CPP_PROJ) $<
<<
.cxx{$(INTDIR)}.obj::
$(CPP) @<<
$(CPP_PROJ) $<
<<
.c{$(INTDIR)}.sbr::
$(CPP) @<<
$(CPP_PROJ) $<
<<
.cpp{$(INTDIR)}.sbr::
$(CPP) @<<
$(CPP_PROJ) $<
<<
.cxx{$(INTDIR)}.sbr::
$(CPP) @<<
$(CPP_PROJ) $<
<<
MTL=midl.exe
MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /win32
RSC=rc.exe
BSC32=bscmake.exe
BSC32_FLAGS=/nologo /o"$(OUTDIR)\nufxlib.bsc"
BSC32_SBRS= \
"$(INTDIR)\Archive.sbr" \
"$(INTDIR)\ArchiveIO.sbr" \
"$(INTDIR)\Bzip2.sbr" \
"$(INTDIR)\Compress.sbr" \
"$(INTDIR)\Crc16.sbr" \
"$(INTDIR)\Debug.sbr" \
"$(INTDIR)\Deferred.sbr" \
"$(INTDIR)\Deflate.sbr" \
"$(INTDIR)\Entry.sbr" \
"$(INTDIR)\Expand.sbr" \
"$(INTDIR)\FileIO.sbr" \
"$(INTDIR)\Funnel.sbr" \
"$(INTDIR)\Lzc.sbr" \
"$(INTDIR)\Lzw.sbr" \
"$(INTDIR)\MiscStuff.sbr" \
"$(INTDIR)\MiscUtils.sbr" \
"$(INTDIR)\Record.sbr" \
"$(INTDIR)\SourceSink.sbr" \
"$(INTDIR)\Squeeze.sbr" \
"$(INTDIR)\Thread.sbr" \
"$(INTDIR)\Value.sbr" \
"$(INTDIR)\Version.sbr"
"$(OUTDIR)\nufxlib.bsc" : "$(OUTDIR)" $(BSC32_SBRS)
$(BSC32) @<<
$(BSC32_FLAGS) $(BSC32_SBRS)
<<
LINK32=link.exe
LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib $(MY_LIB_FLAGS) /nologo /dll /incremental:yes /pdb:"$(OUTDIR)\nufxlib.pdb" /debug /machine:I386 /out:"$(OUTDIR)\nufxlib.dll" /implib:"$(OUTDIR)\nufxlib.lib" /pdbtype:sept
LINK32_OBJS= \
"$(INTDIR)\Archive.obj" \
"$(INTDIR)\ArchiveIO.obj" \
"$(INTDIR)\Bzip2.obj" \
"$(INTDIR)\Compress.obj" \
"$(INTDIR)\Crc16.obj" \
"$(INTDIR)\Debug.obj" \
"$(INTDIR)\Deferred.obj" \
"$(INTDIR)\Deflate.obj" \
"$(INTDIR)\Entry.obj" \
"$(INTDIR)\Expand.obj" \
"$(INTDIR)\FileIO.obj" \
"$(INTDIR)\Funnel.obj" \
"$(INTDIR)\Lzc.obj" \
"$(INTDIR)\Lzw.obj" \
"$(INTDIR)\MiscStuff.obj" \
"$(INTDIR)\MiscUtils.obj" \
"$(INTDIR)\Record.obj" \
"$(INTDIR)\SourceSink.obj" \
"$(INTDIR)\Squeeze.obj" \
"$(INTDIR)\Thread.obj" \
"$(INTDIR)\Value.obj" \
"$(INTDIR)\Version.obj"
"$(OUTDIR)\nufxlib.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
$(LINK32) @<<
$(LINK32_FLAGS) $(LINK32_OBJS)
<<
SOURCE="$(InputPath)"
DS_POSTBUILD_DEP=$(INTDIR)\postbld.dep
ALL : $(DS_POSTBUILD_DEP)
# Begin Custom Macros
OutDir=.\Debug
# End Custom Macros
$(DS_POSTBUILD_DEP) : "$(OUTDIR)\nufxlib.dll" "$(OUTDIR)\nufxlib.bsc"
copy Debug\nufxlib.dll .
copy Debug\nufxlib.lib .
echo Helper for Post-build step > "$(DS_POSTBUILD_DEP)"
!ENDIF
!IF "$(NO_EXTERNAL_DEPS)" != "1"
!IF EXISTS("nufxlib.dep")
!INCLUDE "nufxlib.dep"
!ELSE
!MESSAGE Warning: cannot find "nufxlib.dep"
!ENDIF
!ENDIF
!IF "$(CFG)" == "nufxlib - Win32 Release" || "$(CFG)" == "nufxlib - Win32 Debug"
SOURCE="Archive.c"
!IF "$(CFG)" == "nufxlib - Win32 Release"
"$(INTDIR)\Archive.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
!ELSEIF "$(CFG)" == "nufxlib - Win32 Debug"
"$(INTDIR)\Archive.obj" "$(INTDIR)\Archive.sbr" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
!ENDIF
SOURCE="ArchiveIO.c"
!IF "$(CFG)" == "nufxlib - Win32 Release"
"$(INTDIR)\ArchiveIO.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
!ELSEIF "$(CFG)" == "nufxlib - Win32 Debug"
"$(INTDIR)\ArchiveIO.obj" "$(INTDIR)\ArchiveIO.sbr" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
!ENDIF
SOURCE="Bzip2.c"
!IF "$(CFG)" == "nufxlib - Win32 Release"
"$(INTDIR)\Bzip2.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
!ELSEIF "$(CFG)" == "nufxlib - Win32 Debug"
"$(INTDIR)\Bzip2.obj" "$(INTDIR)\Bzip2.sbr" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
!ENDIF
SOURCE="Compress.c"
!IF "$(CFG)" == "nufxlib - Win32 Release"
"$(INTDIR)\Compress.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
!ELSEIF "$(CFG)" == "nufxlib - Win32 Debug"
"$(INTDIR)\Compress.obj" "$(INTDIR)\Compress.sbr" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
!ENDIF
SOURCE="Crc16.c"
!IF "$(CFG)" == "nufxlib - Win32 Release"
"$(INTDIR)\Crc16.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
!ELSEIF "$(CFG)" == "nufxlib - Win32 Debug"
"$(INTDIR)\Crc16.obj" "$(INTDIR)\Crc16.sbr" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
!ENDIF
SOURCE="Debug.c"
!IF "$(CFG)" == "nufxlib - Win32 Release"
"$(INTDIR)\Debug.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
!ELSEIF "$(CFG)" == "nufxlib - Win32 Debug"
"$(INTDIR)\Debug.obj" "$(INTDIR)\Debug.sbr" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
!ENDIF
SOURCE="Deferred.c"
!IF "$(CFG)" == "nufxlib - Win32 Release"
"$(INTDIR)\Deferred.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
!ELSEIF "$(CFG)" == "nufxlib - Win32 Debug"
"$(INTDIR)\Deferred.obj" "$(INTDIR)\Deferred.sbr" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
!ENDIF
SOURCE="Deflate.c"
!IF "$(CFG)" == "nufxlib - Win32 Release"
"$(INTDIR)\Deflate.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
!ELSEIF "$(CFG)" == "nufxlib - Win32 Debug"
"$(INTDIR)\Deflate.obj" "$(INTDIR)\Deflate.sbr" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
!ENDIF
SOURCE="Entry.c"
!IF "$(CFG)" == "nufxlib - Win32 Release"
"$(INTDIR)\Entry.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
!ELSEIF "$(CFG)" == "nufxlib - Win32 Debug"
"$(INTDIR)\Entry.obj" "$(INTDIR)\Entry.sbr" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
!ENDIF
SOURCE="Expand.c"
!IF "$(CFG)" == "nufxlib - Win32 Release"
"$(INTDIR)\Expand.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
!ELSEIF "$(CFG)" == "nufxlib - Win32 Debug"
"$(INTDIR)\Expand.obj" "$(INTDIR)\Expand.sbr" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
!ENDIF
SOURCE="FileIO.c"
!IF "$(CFG)" == "nufxlib - Win32 Release"
"$(INTDIR)\FileIO.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
!ELSEIF "$(CFG)" == "nufxlib - Win32 Debug"
"$(INTDIR)\FileIO.obj" "$(INTDIR)\FileIO.sbr" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
!ENDIF
SOURCE="Funnel.c"
!IF "$(CFG)" == "nufxlib - Win32 Release"
"$(INTDIR)\Funnel.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
!ELSEIF "$(CFG)" == "nufxlib - Win32 Debug"
"$(INTDIR)\Funnel.obj" "$(INTDIR)\Funnel.sbr" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
!ENDIF
SOURCE="Lzc.c"
!IF "$(CFG)" == "nufxlib - Win32 Release"
"$(INTDIR)\Lzc.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
!ELSEIF "$(CFG)" == "nufxlib - Win32 Debug"
"$(INTDIR)\Lzc.obj" "$(INTDIR)\Lzc.sbr" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
!ENDIF
SOURCE="Lzw.c"
!IF "$(CFG)" == "nufxlib - Win32 Release"
"$(INTDIR)\Lzw.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
!ELSEIF "$(CFG)" == "nufxlib - Win32 Debug"
"$(INTDIR)\Lzw.obj" "$(INTDIR)\Lzw.sbr" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
!ENDIF
SOURCE="MiscStuff.c"
!IF "$(CFG)" == "nufxlib - Win32 Release"
"$(INTDIR)\MiscStuff.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
!ELSEIF "$(CFG)" == "nufxlib - Win32 Debug"
"$(INTDIR)\MiscStuff.obj" "$(INTDIR)\MiscStuff.sbr" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
!ENDIF
SOURCE="MiscUtils.c"
!IF "$(CFG)" == "nufxlib - Win32 Release"
"$(INTDIR)\MiscUtils.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
!ELSEIF "$(CFG)" == "nufxlib - Win32 Debug"
"$(INTDIR)\MiscUtils.obj" "$(INTDIR)\MiscUtils.sbr" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
!ENDIF
SOURCE="Record.c"
!IF "$(CFG)" == "nufxlib - Win32 Release"
"$(INTDIR)\Record.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
!ELSEIF "$(CFG)" == "nufxlib - Win32 Debug"
"$(INTDIR)\Record.obj" "$(INTDIR)\Record.sbr" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
!ENDIF
SOURCE="SourceSink.c"
!IF "$(CFG)" == "nufxlib - Win32 Release"
"$(INTDIR)\SourceSink.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
!ELSEIF "$(CFG)" == "nufxlib - Win32 Debug"
"$(INTDIR)\SourceSink.obj" "$(INTDIR)\SourceSink.sbr" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
!ENDIF
SOURCE="Squeeze.c"
!IF "$(CFG)" == "nufxlib - Win32 Release"
"$(INTDIR)\Squeeze.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
!ELSEIF "$(CFG)" == "nufxlib - Win32 Debug"
"$(INTDIR)\Squeeze.obj" "$(INTDIR)\Squeeze.sbr" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
!ENDIF
SOURCE="Thread.c"
!IF "$(CFG)" == "nufxlib - Win32 Release"
"$(INTDIR)\Thread.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
!ELSEIF "$(CFG)" == "nufxlib - Win32 Debug"
"$(INTDIR)\Thread.obj" "$(INTDIR)\Thread.sbr" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
!ENDIF
SOURCE="Value.c"
!IF "$(CFG)" == "nufxlib - Win32 Release"
"$(INTDIR)\Value.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
!ELSEIF "$(CFG)" == "nufxlib - Win32 Debug"
"$(INTDIR)\Value.obj" "$(INTDIR)\Value.sbr" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
!ENDIF
SOURCE="Version.c"
!IF "$(CFG)" == "nufxlib - Win32 Release"
"$(INTDIR)\Version.obj" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
!ELSEIF "$(CFG)" == "nufxlib - Win32 Debug"
"$(INTDIR)\Version.obj" "$(INTDIR)\Version.sbr" : $(SOURCE) "$(INTDIR)"
$(CPP) $(CPP_PROJ) $(SOURCE)
!ENDIF
!ENDIF

View File

@ -12,6 +12,10 @@
# in this directory or in a standard location that the compiler can find. # in this directory or in a standard location that the compiler can find.
# #
!ifdef DLL
ERROR -- use makefile.dll to build the DLL
!endif
# Windows magic # Windows magic
TARGETOS = BOTH TARGETOS = BOTH
!include <ntwin32.mak> !include <ntwin32.mak>
@ -24,10 +28,10 @@ OBJS4 = Squeeze.obj Thread.obj Value.obj Version.obj
OBJS = $(OBJS1) $(OBJS2) $(OBJS3) $(OBJS4) OBJS = $(OBJS1) $(OBJS2) $(OBJS3) $(OBJS4)
!ifdef NODEBUG !ifdef NODEBUG
#OPT = $(cdebug) /D NDEBUG /ML #OPT = $(cdebug) /D NDEBUG /ML /O2
OPT = $(cdebug) /ML OPT = $(cdebug) /ML /O2
!else !else
OPT = $(cdebug) /MLd OPT = $(cdebug) /MLd /Od
!endif !endif
BUILD_FLAGS = /W3 /GX /D "WIN32" BUILD_FLAGS = /W3 /GX /D "WIN32"
@ -71,8 +75,8 @@ nufxlib.lib: $(OBJS)
$(link) -lib /out:$(PRODUCT) $(OBJS) /nologo $(link) -lib /out:$(PRODUCT) $(OBJS) /nologo
clean:: clean::
del *.obj -del *.obj
del $(PRODUCT) -del $(PRODUCT)
Archive.obj: Archive.c NufxLibPriv.h NufxLib.h MiscStuff.h SysDefs.h Archive.obj: Archive.c NufxLibPriv.h NufxLib.h MiscStuff.h SysDefs.h
ArchiveIO.obj: ArchiveIO.c NufxLibPriv.h NufxLib.h MiscStuff.h SysDefs.h ArchiveIO.obj: ArchiveIO.c NufxLibPriv.h NufxLib.h MiscStuff.h SysDefs.h

View File

@ -649,91 +649,119 @@ typedef enum NuFeature {
* =========================================================================== * ===========================================================================
*/ */
/*
* Win32 dll magic.
*/
#if defined(_WIN32)
# include <windows.h>
# if defined(NUFXLIB_EXPORTS)
/* building the NufxLib DLL */
# define NUFXLIB_API __declspec(dllexport)
# elif defined (NUFXLIB_DLL)
/* building to link against the NufxLib DLL */
# define NUFXLIB_API __declspec(dllimport)
# else
/* using static libs */
# define NUFXLIB_API
# endif
#else
/* not using Win32... hooray! */
# define NUFXLIB_API
#endif
/* streaming and non-streaming read-only interfaces */ /* streaming and non-streaming read-only interfaces */
NuError NuStreamOpenRO(FILE* infp, NuArchive** ppArchive); NUFXLIB_API NuError NuStreamOpenRO(FILE* infp, NuArchive** ppArchive);
NuError NuContents(NuArchive* pArchive, NuCallback contentFunc); NUFXLIB_API NuError NuContents(NuArchive* pArchive, NuCallback contentFunc);
NuError NuExtract(NuArchive* pArchive); NUFXLIB_API NuError NuExtract(NuArchive* pArchive);
NuError NuTest(NuArchive* pArchive); NUFXLIB_API NuError NuTest(NuArchive* pArchive);
/* strictly non-streaming read-only interfaces */ /* strictly non-streaming read-only interfaces */
NuError NuOpenRO(const char* archivePathname, NuArchive** ppArchive); NUFXLIB_API NuError NuOpenRO(const char* archivePathname,NuArchive** ppArchive);
NuError NuExtractRecord(NuArchive* pArchive, NuRecordIdx recordIdx); NUFXLIB_API NuError NuExtractRecord(NuArchive* pArchive, NuRecordIdx recordIdx);
NuError NuExtractThread(NuArchive* pArchive, NuThreadIdx threadIdx, NUFXLIB_API NuError NuExtractThread(NuArchive* pArchive, NuThreadIdx threadIdx,
NuDataSink* pDataSink); NuDataSink* pDataSink);
NuError NuGetRecord(NuArchive* pArchive, NuRecordIdx recordIdx, NUFXLIB_API NuError NuGetRecord(NuArchive* pArchive, NuRecordIdx recordIdx,
const NuRecord** ppRecord); const NuRecord** ppRecord);
NuError NuGetRecordIdxByName(NuArchive* pArchive, const char* name, NUFXLIB_API NuError NuGetRecordIdxByName(NuArchive* pArchive, const char* name,
NuRecordIdx* pRecordIdx);
NuError NuGetRecordIdxByPosition(NuArchive* pArchive, unsigned long position,
NuRecordIdx* pRecordIdx); NuRecordIdx* pRecordIdx);
NUFXLIB_API NuError NuGetRecordIdxByPosition(NuArchive* pArchive,
unsigned long position, NuRecordIdx* pRecordIdx);
/* read/write interfaces */ /* read/write interfaces */
NuError NuOpenRW(const char* archivePathname, const char* tempPathname, NUFXLIB_API NuError NuOpenRW(const char* archivePathname,
unsigned long flags, NuArchive** ppArchive); const char* tempPathname, unsigned long flags,
NuError NuFlush(NuArchive* pArchive, long* pStatusFlags); NuArchive** ppArchive);
NuError NuAddRecord(NuArchive* pArchive, const NuFileDetails* pFileDetails, NUFXLIB_API NuError NuFlush(NuArchive* pArchive, long* pStatusFlags);
NuRecordIdx* pRecordIdx); NUFXLIB_API NuError NuAddRecord(NuArchive* pArchive,
NuError NuAddThread(NuArchive* pArchive, NuRecordIdx recordIdx, const NuFileDetails* pFileDetails, NuRecordIdx* pRecordIdx);
NUFXLIB_API NuError NuAddThread(NuArchive* pArchive, NuRecordIdx recordIdx,
NuThreadIdx threadID, NuDataSource* pDataSource, NuThreadIdx threadID, NuDataSource* pDataSource,
NuThreadIdx* pThreadIdx); NuThreadIdx* pThreadIdx);
NuError NuAddFile(NuArchive* pArchive, const char* pathname, NUFXLIB_API NuError NuAddFile(NuArchive* pArchive, const char* pathname,
const NuFileDetails* pFileDetails, short fromRsrcFork, const NuFileDetails* pFileDetails, short fromRsrcFork,
NuRecordIdx* pRecordIdx); NuRecordIdx* pRecordIdx);
NuError NuRename(NuArchive* pArchive, NuRecordIdx recordIdx, NUFXLIB_API NuError NuRename(NuArchive* pArchive, NuRecordIdx recordIdx,
const char* pathname, char fssep); const char* pathname, char fssep);
NuError NuSetRecordAttr(NuArchive* pArchive, NuRecordIdx recordIdx, NUFXLIB_API NuError NuSetRecordAttr(NuArchive* pArchive, NuRecordIdx recordIdx,
const NuRecordAttr* pRecordAttr); const NuRecordAttr* pRecordAttr);
NuError NuUpdatePresizedThread(NuArchive* pArchive, NuThreadIdx threadIdx, NUFXLIB_API NuError NuUpdatePresizedThread(NuArchive* pArchive,
NuDataSource* pDataSource, long* pMaxLen); NuThreadIdx threadIdx, NuDataSource* pDataSource, long* pMaxLen);
NuError NuDelete(NuArchive* pArchive); NUFXLIB_API NuError NuDelete(NuArchive* pArchive);
NuError NuDeleteRecord(NuArchive* pArchive, NuRecordIdx recordIdx); NUFXLIB_API NuError NuDeleteRecord(NuArchive* pArchive, NuRecordIdx recordIdx);
NuError NuDeleteThread(NuArchive* pArchive, NuRecordIdx threadIdx); NUFXLIB_API NuError NuDeleteThread(NuArchive* pArchive, NuRecordIdx threadIdx);
/* general interfaces */ /* general interfaces */
NuError NuClose(NuArchive* pArchive); NUFXLIB_API NuError NuClose(NuArchive* pArchive);
NuError NuAbort(NuArchive* pArchive); NUFXLIB_API NuError NuAbort(NuArchive* pArchive);
NuError NuGetMasterHeader(NuArchive* pArchive, NUFXLIB_API NuError NuGetMasterHeader(NuArchive* pArchive,
const NuMasterHeader** ppMasterHeader); const NuMasterHeader** ppMasterHeader);
NuError NuGetExtraData(NuArchive* pArchive, void** ppData); NUFXLIB_API NuError NuGetExtraData(NuArchive* pArchive, void** ppData);
NuError NuSetExtraData(NuArchive* pArchive, void* pData); NUFXLIB_API NuError NuSetExtraData(NuArchive* pArchive, void* pData);
NuError NuGetValue(NuArchive* pArchive, NuValueID ident, NuValue* pValue); NUFXLIB_API NuError NuGetValue(NuArchive* pArchive, NuValueID ident,
NuError NuSetValue(NuArchive* pArchive, NuValueID ident, NuValue value); NuValue* pValue);
NuError NuGetAttr(NuArchive* pArchive, NuAttrID ident, NuAttr* pAttr); NUFXLIB_API NuError NuSetValue(NuArchive* pArchive, NuValueID ident,
NuError NuDebugDumpArchive(NuArchive* pArchive); NuValue value);
NUFXLIB_API NuError NuGetAttr(NuArchive* pArchive, NuAttrID ident,
NuAttr* pAttr);
NUFXLIB_API NuError NuDebugDumpArchive(NuArchive* pArchive);
/* sources and sinks */ /* sources and sinks */
NuError NuCreateDataSourceForFile(NuThreadFormat threadFormat, short doClose, NUFXLIB_API NuError NuCreateDataSourceForFile(NuThreadFormat threadFormat,
unsigned long otherLen, const char* pathname, short isFromRsrcFork, short doClose, unsigned long otherLen, const char* pathname,
NuDataSource** ppDataSource); short isFromRsrcFork, NuDataSource** ppDataSource);
NuError NuCreateDataSourceForFP(NuThreadFormat threadFormat, short doClose, NUFXLIB_API NuError NuCreateDataSourceForFP(NuThreadFormat threadFormat,
unsigned long otherLen, FILE* fp, long offset, long length, short doClose, unsigned long otherLen, FILE* fp, long offset,
NuDataSource** ppDataSource);
NuError NuCreateDataSourceForBuffer(NuThreadFormat threadFormat, short doClose,
unsigned long otherLen, const unsigned char* buffer, long offset,
long length, NuDataSource** ppDataSource); long length, NuDataSource** ppDataSource);
NuError NuFreeDataSource(NuDataSource* pDataSource); NUFXLIB_API NuError NuCreateDataSourceForBuffer(NuThreadFormat threadFormat,
NuError NuDataSourceSetRawCrc(NuDataSource* pDataSource, unsigned short crc); short doClose, unsigned long otherLen, const unsigned char* buffer,
NuError NuCreateDataSinkForFile(short doExpand, NuValue convertEOL, long offset, long length, NuDataSource** ppDataSource);
NUFXLIB_API NuError NuFreeDataSource(NuDataSource* pDataSource);
NUFXLIB_API NuError NuDataSourceSetRawCrc(NuDataSource* pDataSource,
unsigned short crc);
NUFXLIB_API NuError NuCreateDataSinkForFile(short doExpand, NuValue convertEOL,
const char* pathname, char fssep, NuDataSink** ppDataSink); const char* pathname, char fssep, NuDataSink** ppDataSink);
NuError NuCreateDataSinkForFP(short doExpand, NuValue convertEOL, NUFXLIB_API NuError NuCreateDataSinkForFP(short doExpand, NuValue convertEOL,
FILE* fp, NuDataSink** ppDataSink); FILE* fp, NuDataSink** ppDataSink);
NuError NuCreateDataSinkForBuffer(short doExpand, NuValue convertEOL, NUFXLIB_API NuError NuCreateDataSinkForBuffer(short doExpand,
unsigned char* buffer, unsigned long bufLen, NuValue convertEOL, unsigned char* buffer, unsigned long bufLen,
NuDataSink** ppDataSink); NuDataSink** ppDataSink);
NuError NuFreeDataSink(NuDataSink* pDataSink); NUFXLIB_API NuError NuFreeDataSink(NuDataSink* pDataSink);
NuError NuDataSinkGetOutCount(NuDataSink* pDataSink, unsigned long* pOutCount); NUFXLIB_API NuError NuDataSinkGetOutCount(NuDataSink* pDataSink,
unsigned long* pOutCount);
/* miscellaneous non-archive operations */ /* miscellaneous non-archive operations */
NuError NuGetVersion(long* pMajorVersion, long* pMinorVersion, NUFXLIB_API NuError NuGetVersion(long* pMajorVersion, long* pMinorVersion,
long* pBugVersion, const char** ppBuildDate, long* pBugVersion, const char** ppBuildDate,
const char** ppBuildFlags); const char** ppBuildFlags);
const char* NuStrError(NuError err); NUFXLIB_API const char* NuStrError(NuError err);
NuError NuTestFeature(NuFeature feature); NUFXLIB_API NuError NuTestFeature(NuFeature feature);
void NuRecordCopyAttr(NuRecordAttr* pRecordAttr, const NuRecord* pRecord); NUFXLIB_API void NuRecordCopyAttr(NuRecordAttr* pRecordAttr,
NuError NuRecordCopyThreads(const NuRecord* pRecord, NuThread** ppThreads); const NuRecord* pRecord);
unsigned long NuRecordGetNumThreads(const NuRecord* pRecord); NUFXLIB_API NuError NuRecordCopyThreads(const NuRecord* pRecord,
const NuThread* NuThreadGetByIdx(const NuThread* pThread, long idx); NuThread** ppThreads);
short NuIsPresizedThreadID(NuThreadID threadID); NUFXLIB_API unsigned long NuRecordGetNumThreads(const NuRecord* pRecord);
NUFXLIB_API const NuThread* NuThreadGetByIdx(const NuThread* pThread, long idx);
NUFXLIB_API short NuIsPresizedThreadID(NuThreadID threadID);
#define NuGetThread(pRecord, idx) ( (const NuThread*) \ #define NuGetThread(pRecord, idx) ( (const NuThread*) \
((unsigned long) (idx) < (unsigned long) (pRecord)->recTotalThreads ? \ ((unsigned long) (idx) < (unsigned long) (pRecord)->recTotalThreads ? \
@ -742,13 +770,16 @@ short NuIsPresizedThreadID(NuThreadID threadID);
/* callback setters */ /* callback setters */
NuError NuSetSelectionFilter(NuArchive* pArchive, NuCallback filterFunc); NUFXLIB_API NuError NuSetSelectionFilter(NuArchive* pArchive,
NuError NuSetOutputPathnameFilter(NuArchive* pArchive, NuCallback filterFunc); NuCallback filterFunc);
NuError NuSetProgressUpdater(NuArchive* pArchive, NuCallback updateFunc); NUFXLIB_API NuError NuSetOutputPathnameFilter(NuArchive* pArchive,
NuError NuSetErrorHandler(NuArchive* pArchive, NuCallback errorFunc); NuCallback filterFunc);
NuError NuSetErrorMessageHandler(NuArchive* pArchive, NUFXLIB_API NuError NuSetProgressUpdater(NuArchive* pArchive,
NuCallback updateFunc);
NUFXLIB_API NuError NuSetErrorHandler(NuArchive* pArchive,NuCallback errorFunc);
NUFXLIB_API NuError NuSetErrorMessageHandler(NuArchive* pArchive,
NuCallback messageHandlerFunc); NuCallback messageHandlerFunc);
NuError NuSetGlobalErrorMessageHandler(NuCallback messageHandlerFunc); NUFXLIB_API NuError NuSetGlobalErrorMessageHandler(NuCallback messageHandlerFunc);
#ifdef __cplusplus #ifdef __cplusplus

View File

@ -78,9 +78,30 @@ to build with debugging info, or
nmake -f makefile.msc nodebug=1 nmake -f makefile.msc nodebug=1
to build optimized. to build optimized.
See the makefile for comments about including zlib or libbz2. These
need to be enabled at compile time and linked into the sample apps.
Once the library has been built, "cd samples" and run the same command there. Once the library has been built, "cd samples" and run the same command there.
When it finishes, run "test-basic.exe". When it finishes, run "test-basic.exe".
If you want to build NufxLib as a DLL, use "makefile.dll" instead.
If you're using zlib or libbz2, these will need to be linked into the DLL.
You will probably need to set the application that links against it to
use the "multithreaded DLL" version of the C library. (In Visual C++,
go to Project->Settings...->C/C++ tab, select Category: Code Generation,
and in the "Use run-time library" box choose "Multithreaded DLL" for
Release and "Debug Multithreaded DLL" for Debug.)
You have to use the DLL version because NufxLib allows certain calls to
pass in a malloc()ed pointer which the library then takes ownership of.
If nufxlib.dll and the application are using different heaps, the memory
is being allocated on one and freed from another, which doesn't work.
Debug versions of the DLL will halt with an assertion failure, most
likely in a NuFlush or NuClose call. Non-debug versions will silently
leak memory, or possibly corrupt other structures. You can test this
easily by running the "test-basic" application after linking it against
the DLL without specifying "DLL=1" on the makefile line.
Other Notes Other Notes
=========== ===========

View File

@ -8,6 +8,8 @@
# To build without debugging info, use "nmake nodebug=1". # To build without debugging info, use "nmake nodebug=1".
# To build with libz, use "nmake libz=1". # To build with libz, use "nmake libz=1".
# To build with libbz2, use "nmake libbz2=1". # To build with libbz2, use "nmake libbz2=1".
# If you're linking against nufxlib as a DLL, add "DLL=1", and don't
# specify libz or libbz2.
# #
# For libz/libbz2, you need to have the appropriate library either # For libz/libbz2, you need to have the appropriate library either
# in this directory or in a standard location that the linker can find. # in this directory or in a standard location that the linker can find.
@ -20,14 +22,26 @@ TARGETOS = BOTH
NUFXSRCDIR = .. NUFXSRCDIR = ..
LIB_PRODUCT = $(NUFXSRCDIR)\nufxlib.lib LIB_PRODUCT = $(NUFXSRCDIR)\nufxlib.lib
!ifdef DLL
### build against the DLL
!ifdef NODEBUG !ifdef NODEBUG
#OPT = /D NDEBUG /ML /Ogityb2 OPT = /D NUFXLIB_DLL /MD /Ogityb2
OPT = /D DEBUG_MSGS /ML /Ogityb2 LIB_FLAGS = /nodefaultlib:libcd.lib /nologo setargv.obj
!else
OPT = /D NUFXLIB_DLL /D DEBUG_MSGS /MDd /Od
LIB_FLAGS = /nodefaultlib:libc.lib /nologo setargv.obj
!endif
!else
### build against static lib
!ifdef NODEBUG
OPT = /ML /Ogityb2
LIB_FLAGS = /nodefaultlib:libcd.lib /nologo libc.lib setargv.obj LIB_FLAGS = /nodefaultlib:libcd.lib /nologo libc.lib setargv.obj
!else !else
OPT = /D DEBUG_MSGS /MLd /Od OPT = /D DEBUG_MSGS /MLd /Od
LIB_FLAGS = /nodefaultlib:libc.lib /nologo libcd.lib setargv.obj LIB_FLAGS = /nodefaultlib:libc.lib /nologo libcd.lib setargv.obj
!endif !endif
!endif
BUILD_FLAGS = /W3 /GX /D "WIN32" /D "_CONSOLE" /I "$(NUFXSRCDIR)" BUILD_FLAGS = /W3 /GX /D "WIN32" /D "_CONSOLE" /I "$(NUFXSRCDIR)"
@ -66,13 +80,16 @@ test-extract.exe: TestExtract.obj $(LIB_PRODUCT)
$(link) $(ldebug) TestExtract.obj -out:$@ $(NUFXSRCDIR)\nufxlib.lib $(LIB_FLAGS) $(link) $(ldebug) TestExtract.obj -out:$@ $(NUFXSRCDIR)\nufxlib.lib $(LIB_FLAGS)
clean: clean:
del *.obj -del *.obj
del exerciser.exe -del *.pdb
del imgconv.exe -del *.ilk
del launder.exe -del *.exp
del test-basic.exe -del exerciser.exe
del test-simple.exe -del imgconv.exe
del test-extract.exe -del launder.exe
-del test-basic.exe
-del test-simple.exe
-del test-extract.exe
Exerciser.obj: Exerciser.c Common.h $(NUFXSRCDIR)\NufxLib.h $(NUFXSRCDIR)\SysDefs.h Exerciser.obj: Exerciser.c Common.h $(NUFXSRCDIR)\NufxLib.h $(NUFXSRCDIR)\SysDefs.h
ImgConv.obj: ImgConv.c Common.h $(NUFXSRCDIR)\NufxLib.h $(NUFXSRCDIR)\SysDefs.h ImgConv.obj: ImgConv.c Common.h $(NUFXSRCDIR)\NufxLib.h $(NUFXSRCDIR)\SysDefs.h