Ralf Wildenhues wrote:
Hello Russell,
* Russell Shaw wrote on Sun, Mar 21, 2010 at 07:06:00AM CET:
I want the "unimain" program built first, then use it to generate
unidata.tab.c, which is then compiled and linked into librunicode.la
bin_PROGRAMS = unimain
unimain_SOURCES = unimain.c
unidata.tab.c: /usr/share/unicode/UnicodeData.txt
./unimain $< > $@
Then you need a dependency from unidata.tab.c on unimain:
unidata.tab.c: unimain$(EXEEXT) /usr/share/unicode/UnicodeData.txt
./unimain$(EXEEXT) $< > $@
Ok, that works thanks:)
However, "make install" installs unimain into /usr/local/bin
How do i stop this program from being installed?
I did:
install-exec-hook:
rm $(DESTDIR)$(bindir)/unimain$(EXEEXT)
This deletes it out of /usr/local/bin after installing it which
seems kind of kludgy.
Furthermore, please don't hard-code absolute paths like
/usr/share/unicode/UnicodeData.txt
in your makefiles. Make them configurable by configure. Maybe your
users don't have root rights on their system but have the file installed
below their home somewhere?