Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.117.165.66] |
|
Сообщ.
#1
,
|
|
|
Создал файл project.mak. Дальше компилю проект (DLL): nmake /f project.mak CFG="project - Win32 Release"
У меня создаются всякие файлы ненужные. Как сделать, чтобы они удалялись (все кроме project.dll)? |
Сообщ.
#2
,
|
|
|
Прописать удаление ненужных файлов после сборки соответствующей цели.
|
Сообщ.
#3
,
|
|
|
Как?
|
Сообщ.
#4
,
|
|
|
Здесь телепатов нет. Текст make-файла покажи.
|
Сообщ.
#5
,
|
|
|
Пожалуйста:
# Microsoft Developer Studio Generated NMAKE File, Based on project.dsp !IF "$(CFG)" == "" CFG=project - Win32 Debug !MESSAGE No configuration specified. Defaulting to project - Win32 Debug. !ENDIF !IF "$(CFG)" != "project - Win32 Release" && "$(CFG)" != "project - 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 "project.mak" CFG="project - Win32 Debug" !MESSAGE !MESSAGE Possible choices for configuration are: !MESSAGE !MESSAGE "project - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") !MESSAGE "project - 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 CPP=cl.exe MTL=midl.exe RSC=rc.exe !IF "$(CFG)" == "project - Win32 Release" OUTDIR=.\Release INTDIR=.\Release # Begin Custom Macros OutDir=.\Release # End Custom Macros ALL : "$(OUTDIR)\project.dll" CLEAN : -@erase "$(INTDIR)\project.obj" -@erase "$(INTDIR)\vc60.idb" -@erase "$(OUTDIR)\project.dll" -@erase "$(OUTDIR)\project.exp" -@erase "$(OUTDIR)\project.lib" "$(OUTDIR)" : if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" CPP_PROJ=/nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PROJECT_EXPORTS" /Fp"$(INTDIR)\project.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /win32 BSC32=bscmake.exe BSC32_FLAGS=/nologo /o"$(OUTDIR)\project.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 /nologo /dll /incremental:no /pdb:"$(OUTDIR)\project.pdb" /machine:I386 /out:"$(OUTDIR)\project.dll" /implib:"$(OUTDIR)\project.lib" LINK32_OBJS= \ "$(INTDIR)\project.obj" "$(OUTDIR)\project.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) $(LINK32) @<< $(LINK32_FLAGS) $(LINK32_OBJS) << !ELSEIF "$(CFG)" == "project - Win32 Debug" OUTDIR=.\Debug INTDIR=.\Debug # Begin Custom Macros OutDir=.\Debug # End Custom Macros ALL : "$(OUTDIR)\project.dll" CLEAN : -@erase "$(INTDIR)\project.obj" -@erase "$(INTDIR)\vc60.idb" -@erase "$(INTDIR)\vc60.pdb" -@erase "$(OUTDIR)\project.dll" -@erase "$(OUTDIR)\project.exp" -@erase "$(OUTDIR)\project.ilk" -@erase "$(OUTDIR)\project.lib" -@erase "$(OUTDIR)\project.pdb" "$(OUTDIR)" : if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" CPP_PROJ=/nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "PROJECT_EXPORTS" /Fp"$(INTDIR)\project.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /win32 BSC32=bscmake.exe BSC32_FLAGS=/nologo /o"$(OUTDIR)\project.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 /nologo /dll /incremental:yes /pdb:"$(OUTDIR)\project.pdb" /debug /machine:I386 /out:"$(OUTDIR)\project.dll" /implib:"$(OUTDIR)\project.lib" /pdbtype:sept LINK32_OBJS= \ "$(INTDIR)\project.obj" "$(OUTDIR)\project.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) $(LINK32) @<< $(LINK32_FLAGS) $(LINK32_OBJS) << !ENDIF .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) $< << !IF "$(NO_EXTERNAL_DEPS)" != "1" !IF EXISTS("project.dep") !INCLUDE "project.dep" !ELSE !MESSAGE Warning: cannot find "project.dep" !ENDIF !ENDIF !IF "$(CFG)" == "project - Win32 Release" || "$(CFG)" == "project - Win32 Debug" SOURCE=.\project.c "$(INTDIR)\project.obj" : $(SOURCE) "$(INTDIR)" !ENDIF |
Сообщ.
#6
,
|
|
|
Цитата 0xBAD, 22.01.04, 13:40 "$(OUTDIR)\project.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) $(LINK32) @<< $(LINK32_FLAGS) $(LINK32_OBJS) << После этих строчек добавь del <маска файлов, которые нужно удалить> Обрати внимание, что перед del должна быть табуляция. Если одной строчки не хватить - добавь несколько. |
Сообщ.
#7
,
|
|
|
А можно что-нибудь замутить с CLEAN?
|
Сообщ.
#8
,
|
|
|
Можно добавить аналогичную цель, но в ней удалять только временные файлы.
|
Сообщ.
#9
,
|
|
|
Не понял?
|
Сообщ.
#10
,
|
|
|
После CLEAN написать примерно так:
CLEAN_TMP : -@erase "$(INTDIR)\project.obj" -@erase "$(INTDIR)\vc60.idb" |
Сообщ.
#11
,
|
|
|
А как это вызвать (CLEAN_TMP)?
|
Сообщ.
#12
,
|
|
|
nmake CLEAN_TMP /f project.mak
|
Сообщ.
#13
,
|
|
|
Я сделал следующее. Скопировал CLEAN'ы (в debug и release), вставил как CLEAN_TMP, удалив строку: -@erase "$(OUTDIR)\project.dll"
Теперь запускаю: (build.bat) nmake /f project.mak CFG="project - Win32 Release" nmake CLEAN_TMP /f project.mak CFG="project - Win32 Release" Остается файл : project.pch в $(INTDIR) Написал -@erase "$(OUTDIR)\project.pch, остается сама папка $(INTDIR). Мне нужно, чтобы была одна папка Release и в ней валялась project.dll |
Сообщ.
#14
,
|
|
|
Ну так и добавь
rd $(OUTDIR) |