На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Qraizer, Hsilgos
  
> nmake
    Создал файл project.mak. Дальше компилю проект (DLL): nmake /f project.mak CFG="project - Win32 Release"

    У меня создаются всякие файлы ненужные. Как сделать, чтобы они удалялись (все кроме project.dll)?
      Прописать удаление ненужных файлов после сборки соответствующей цели.
        Как?
          Здесь телепатов нет. Текст make-файла покажи.
            Пожалуйста:

            # 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
              Цитата
              0xBAD, 22.01.04, 13:40
              "$(OUTDIR)\project.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
              $(LINK32) @<<
              $(LINK32_FLAGS) $(LINK32_OBJS)
              <<

              После этих строчек добавь
              del <маска файлов, которые нужно удалить>
              Обрати внимание, что перед del должна быть табуляция.
              Если одной строчки не хватить - добавь несколько.
                А можно что-нибудь замутить с CLEAN?
                  Можно добавить аналогичную цель, но в ней удалять только временные файлы.
                    Не понял?
                      После CLEAN написать примерно так:
                      CLEAN_TMP :
                      -@erase "$(INTDIR)\project.obj"
                      -@erase "$(INTDIR)\vc60.idb"
                        А как это вызвать (CLEAN_TMP)?
                          nmake CLEAN_TMP /f project.mak
                          Сообщение отредактировано: Flex_Ferrum -
                            Я сделал следующее. Скопировал 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
                              Ну так и добавь
                              rd $(OUTDIR)
                              0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                              0 пользователей:


                              Рейтинг@Mail.ru
                              [ Script execution time: 0,0339 ]   [ 16 queries used ]   [ Generated: 27.04.24, 10:08 GMT ]