[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Targets not being built
From: |
Edgar |
Subject: |
Re: Targets not being built |
Date: |
Thu, 17 Nov 2011 13:53:23 -0600 |
User-agent: |
Thunderbird 2.0.0.24 (Windows/20100228) |
Paul Smith wrote:
On Wed, 2011-11-16 at 23:44 -0600, Edgar wrote:
Does anyone know what I am doing wrong?
Since you don't show us the values of the variables you're using in the
example it's impossible to say.
But a few things: first, the rule you provide is for files that match
%.hpp but your output shows a file "key_handler.h" which won't match
that pattern.
Second, the output shows clearly that make did NOT find an implicit rule
to build the installed file, which also implies your pattern rules are
wrong: you can see the ones make matched against and yours is not there.
Finally, by the documentation if make finds a target with no recipe or
prerequisites, make assumes it to be up to date; see "Rules Without
Commands or Prerequisites":
If a rule has no prerequisites or commands, and the target of
the rule is a nonexistent file, then `make' imagines this target
to have been updated whenever its rule is run. This implies
that all targets depending on this one will always have their
commands run.
Maybe that's what's happening? Again without a fully self-contained
example we can't say for sure.
Sorry, I misquoted the rule for building headers - here they all are :
$(INSTALLINCLUDEDIR)$(SLASH)Eagle.hpp : include$(SLASH)Eagle.hpp
$(COPY) $< $@
$(INSTALLINCLUDEDIR)$(SLASH)Eagle$(SLASH)%.h :
include$(SLASH)Eagle$(SLASH)%.h
$(COPY) $< $@
$(INSTALLINCLUDEDIR)$(SLASH)Eagle$(SLASH)%.hpp :
include$(SLASH)Eagle$(SLASH)%.hpp
$(COPY) $< $@
$(INSTALLINCLUDEDIR)$(SLASH)Eagle$(SLASH)GuiCode$(SLASH)%.h :
include$(SLASH)Eagle$(SLASH)GuiCode$(SLASH)%.h
$(COPY) $< $@
$(INSTALLINCLUDEDIR)$(SLASH)Eagle$(SLASH)GuiCode$(SLASH)%.hpp :
include$(SLASH)Eagle$(SLASH)GuiCode$(SLASH)%.hpp
$(COPY) $< $@
So the cases for *.h and *.hpp in the c:\mingw\include\Eagle and the
c:\mingw\include\Eagle\GuiCode directories should all be covered right?
Here is the install target :
install : $(OUTPUTLIB) $(OUTPUTDLL) $(OUTPUTDEF) $(INSTALLEDHEADERS)
| $(INSTALLLIBDIR) $(INSTALLBINDIR)
$(ECHO) $(INSTALLEDHEADERS)
$(ECHO) INSTALLINCLUDEDIR = $(INSTALLINCLUDEDIR)
$(COPY) $(OUTPUTLIB) $(INSTALLLIBDIR)
$(COPY) $(OUTPUTDLL) $(INSTALLBINDIR)
And here is the output of make install :
c:\ctwoplus\progcode\allegro\Eagle>make install
C:\mingw\include\Eagle.hpp C:\mingw\include\Eagle\key_handler.h
C:\mingw\include\Eagle\timer_handler.h
C:\mingw\include\Eagle\AllegroSetup.hpp
C:\mingw\include\Eagle\TileMap.hpp C:\mingw\include\Eagle\Color.hpp
C:\mingw\include\Eagle\EagleCredits.hpp C:\mingw\include\Eagle\Sound.hpp
C:\mingw\include\Eagle\Blitting.hpp C:\mingw\include\Eagle\GuiCode.hpp
C:\mingw\include\Eagle\TextDisplay.hpp C:\min
gw\include\Eagle\Clipboard.hpp C:\mingw\include\Eagle\Blending.hpp
C:\mingw\include\Eagle\MultiArray.hpp
C:\mingw\include\Eagle\StringWork.hpp C:\mingw\include\Eagle\Math.hpp
C:\mingw\include\Eagle\TextEntryWidget.hpp
C:\mingw\include\Eagle\Drawing.hpp C:\mingw\include\Eagle\Logging.hpp
C:\mingw\include\Eagle\InputHandler.hpp
C:\mingw\include\Eagle\Resource.hpp C:\mingw\include\Eagle\Area.hpp C:\m
ingw\include\Eagle\BitmapHandler.hpp C:\mingw\include\Eagle\Error.hpp
C:\mingw\include\Eagle\FileWork.hpp
C:\mingw\include\Eagle\AllegroUtilities.hpp
C:\mingw\include\Eagle\ResourceRegistry.hpp
C:\mingw\include\Eagle\GfxModeHandler.hpp
C:\mingw\include\Eagle\BitmapUtility.hpp
C:\mingw\include\Eagle\MouseHandler.hpp
C:\mingw\include\Eagle\GuiCode\WidgetBase.hpp
C:\mingw\include\Eagle\GuiCode\TextIn
put.hpp C:\mingw\include\Eagle\GuiCode\RadioButtonWidget.hpp
C:\mingw\include\Eagle\GuiCode\ListBox.hpp
C:\mingw\include\Eagle\GuiCode\TextWidget.hpp
C:\mingw\include\Eagle\GuiCode\IconButton.hpp
C:\mingw\include\Eagle\GuiCode\GfxModeDialog.hpp
C:\mingw\include\Eagle\GuiCode\ScrollBarWidget.hpp
C:\mingw\include\Eagle\GuiCode\TabGroup.hpp
C:\mingw\include\Eagle\GuiCode\Camera.hpp C:\mingw\include\E
agle\GuiCode\BitmapViewer.hpp
C:\mingw\include\Eagle\GuiCode\ScrollButtonWidget.hpp
C:\mingw\include\Eagle\GuiCode\Animation.hpp
C:\mingw\include\Eagle\GuiCode\TitleBar.hpp
C:\mingw\include\Eagle\GuiCode\WidgetMessage.hpp
C:\mingw\include\Eagle\GuiCode\ButtonBaseWidget.hpp
C:\mingw\include\Eagle\GuiCode\DropDownList.hpp
C:\mingw\include\Eagle\GuiCode\UtilityWidgets.hpp
C:\mingw\include\Eagle\GuiCo
de\WidgetHandler.hpp C:\mingw\include\Eagle\GuiCode\WidgetColorset.hpp
C:\mingw\include\Eagle\GuiCode\FileSelectorDialog.hpp
C:\mingw\include\Eagle\GuiCode\ButtonWidget.hpp
C:\mingw\include\Eagle\GuiCode\MenuWidget.hpp
C:\mingw\include\Eagle\GuiCode\SliderWidget.hpp
INSTALLINCLUDEDIR = C:\mingw\include
copy /Y testbuild\lib\libeagle_r.dll.a C:\mingw\lib
1 file(s) copied.
copy /Y testbuild\lib\eagle_r.dll C:\mingw\bin
1 file(s) copied.
c:\ctwoplus\progcode\allegro\Eagle>
The problem is that none of the headers listed in $(INSTALLEDHEADERS)
exist yet, and they aren't being remade with my implicit rules listed above.
So I don't know what is wrong.