Makefile-problem…

Här diskuteras programmering och utveckling
Användarvisningsbild
Johnny Rosenberg
Inlägg: 1256
Blev medlem: 23 jun 2007, 16:18
OS: Ubuntu
Utgåva: 22.10 Kinetic Kudu
Kontakt:

Makefile-problem…

Inlägg av Johnny Rosenberg »

Försöker installera ett program som jag inte själv skrivit men får inget väsentligt att hända. Så här ser filen Makefile ut:

Kod: Markera allt

# Makefile for GPRename
# Author: Marvin Stark <marv@der-marv.de>
# Copyright (C) 2007 gprename-users@lists.sourceforge.net

# Globals:
PREFIX=/usr/local
DESTDIR=/usr/local

build:
	# Create temporary build directory and modify file locations.
	install -d $(CURDIR)/build
	install -d $(CURDIR)/build/locale
	install -d $(CURDIR)/build/locale/ca
	install -d $(CURDIR)/build/locale/cn_ZH
	install -d $(CURDIR)/build/locale/de
	install -d $(CURDIR)/build/locale/es
	install -d $(CURDIR)/build/locale/fr
	install -d $(CURDIR)/build/locale/id
	install -d $(CURDIR)/build/locale/it
	install -d $(CURDIR)/build/locale/nl
	install -d $(CURDIR)/build/locale/pl
	install -d $(CURDIR)/build/locale/pt_BR
	perl -ne 's!\@INSTALLDIR\@!$(PREFIX)!g ; print' < bin/gprename > build/gprename
	perl -ne 's!\@INSTALLDIR\@!$(PREFIX)!g ; print' < bin/gprename.desktop > build/gprename.desktop

install: uninstall build
	# Compile all .po files to .mo
	msgfmt -o build/locale/ca.mo	locale/ca.po
	msgfmt -o build/locale/cn_ZH.mo	locale/cn_ZH.po
	msgfmt -o build/locale/de.mo	locale/de.po
	msgfmt -o build/locale/es.mo	locale/es.po
	msgfmt -o build/locale/fr.mo	locale/fr.po
	msgfmt -o build/locale/id.mo 	locale/id.po
	msgfmt -o build/locale/it.mo 	locale/it.po
	msgfmt -o build/locale/nl.mo 	locale/nl.po
	msgfmt -o build/locale/pl.mo 	locale/pl.po
	msgfmt -o build/locale/pt_BR.mo	locale/pt_BR.po

	# Create directories
	install -d $(DESTDIR)
	install -d $(DESTDIR)/bin
	install -d $(DESTDIR)/share/pixmaps
	install -d $(DESTDIR)/share/pixmaps/gprename
	install -d $(DESTDIR)/share/applications
	install -d $(DESTDIR)/share/man
	install -d $(DESTDIR)/share/man/man1
	install -d $(DESTDIR)/share/locale/ca/LC_MESSAGES
	install -d $(DESTDIR)/share/locale/cn_ZH/LC_MESSAGES
	install -d $(DESTDIR)/share/locale/de/LC_MESSAGES
	install -d $(DESTDIR)/share/locale/es/LC_MESSAGES
	install -d $(DESTDIR)/share/locale/fr/LC_MESSAGES
	install -d $(DESTDIR)/share/locale/id/LC_MESSAGES
	install -d $(DESTDIR)/share/locale/it/LC_MESSAGES
	install -d $(DESTDIR)/share/locale/nl/LC_MESSAGES
	install -d $(DESTDIR)/share/locale/pl/LC_MESSAGES
	install -d $(DESTDIR)/share/locale/pt_BR/LC_MESSAGES

	# Copy all files in the filesystem
	install -m 755 build/gprename		$(DESTDIR)/bin/
	install -m 644 build/gprename.desktop	$(DESTDIR)/share/applications/
	install -m 644 gprename.schemas		$(DESTDIR)/share/applications
	install -m 644 icon/*			$(DESTDIR)/share/pixmaps/gprename
	install -m 644 man/gprename.1 		$(DESTDIR)/share/man/man1/
	install -m 644 build/locale/ca.mo	$(DESTDIR)/share/locale/ca/LC_MESSAGES/gprename.mo
	install -m 644 build/locale/cn_ZH.mo	$(DESTDIR)/share/locale/cn_ZH/LC_MESSAGES/gprename.mo
	install -m 644 build/locale/de.mo	$(DESTDIR)/share/locale/de/LC_MESSAGES/gprename.mo
	install -m 644 build/locale/es.mo	$(DESTDIR)/share/locale/es/LC_MESSAGES/gprename.mo
	install -m 644 build/locale/fr.mo	$(DESTDIR)/share/locale/fr/LC_MESSAGES/gprename.mo
	install -m 644 build/locale/id.mo	$(DESTDIR)/share/locale/id/LC_MESSAGES/gprename.mo
	install -m 644 build/locale/it.mo	$(DESTDIR)/share/locale/it/LC_MESSAGES/gprename.mo
	install -m 644 build/locale/nl.mo	$(DESTDIR)/share/locale/nl/LC_MESSAGES/gprename.mo
	install -m 644 build/locale/pl.mo	$(DESTDIR)/share/locale/pl/LC_MESSAGES/gprename.mo
	install -m 644 build/locale/pt_BR.mo	$(DESTDIR)/share/locale/pt_BR/LC_MESSAGES/gprename.mo

	@echo "Installation completed."

uninstall: clean
	rm -f $(DESTDIR)/bin/gprename
	rm -f $(DESTDIR)/share/applications/gprename.desktop
	rm -f $(DESTDIR)/share/applications/gprename.schemas
	rm -f $(DESTDIR)/share/man/man1/gprename.1
	rm -f $(DESTDIR)/share/locale/ca/LC_MESSAGES/gprename.mo
	rm -f $(DESTDIR)/share/locale/cn_ZH/LC_MESSAGES/gprename.mo
	rm -f $(DESTDIR)/share/locale/de/LC_MESSAGES/gprename.mo
	rm -f $(DESTDIR)/share/locale/es/LC_MESSAGES/gprename.mo
	rm -f $(DESTDIR)/share/locale/fr/LC_MESSAGES/gprename.mo
	rm -f $(DESTDIR)/share/locale/id/LC_MESSAGES/gprename.mo
	rm -f $(DESTDIR)/share/locale/it/LC_MESSAGES/gprename.mo
	rm -f $(DESTDIR)/share/locale/nl/LC_MESSAGES/gprename.mo
	rm -f $(DESTDIR)/share/locale/pl/LC_MESSAGES/gprename.mo
	rm -f $(DESTDIR)/share/locale/pt_BR/LC_MESSAGES/gprename.mo
	rm -fr $(DESTDIR)/share/pixmaps/gprename

clean:
	rm -rf build

help:
	@echo "Type \"make install\" to install GPRename."
	@echo "Type \"make uninstall\" to remove GPRename."
	@echo "Type \"make clean\" to clean the current directory."
Programmet är skrivet i Perl, om nu det har någon betydelse.
När jag står i samma mapp som Makefile ligger i och skriver sudo make install, som instruktionerna säger att jag ska göra, kommer det upp text i terminalen som motsvarar raden install -d $(CURDIR)/build och de närmast efterföljande. Vad jag förstår så ska detta skapa en mapp som heter build i den mapp jag befinner mig i, men detta händer aldrig. Om jag manuellt skriver install -d build så skapas mappen som den ska, men tydligen inte när jag kör make.
Är det något jag missat här? Måste Makefile ha några särskilda rättigheter? Fast jag gav den alla rättigheter utan att det för den skull fungerar, så det var kanske en onödig delfråga…
Det känns som om den bara SKRIVER i terminalen vad den istället borde GÖRA. Här är en liten skärmdump:

Kod: Markera allt

guraknugen@PB-laptop:~/Eget/Nerladdad programvara/GNU Linux/Verktyg/Filhantering/GPRename/gprename-2.6$ sudo make install
rm -rf build
rm -f /usr/local/bin/gprename
rm -f /usr/local/share/applications/gprename.desktop
rm -f /usr/local/share/applications/gprename.schemas
rm -f /usr/local/share/man/man1/gprename.1
rm -f /usr/local/share/locale/ca/LC_MESSAGES/gprename.mo
rm -f /usr/local/share/locale/cn_ZH/LC_MESSAGES/gprename.mo
rm -f /usr/local/share/locale/de/LC_MESSAGES/gprename.mo
rm -f /usr/local/share/locale/es/LC_MESSAGES/gprename.mo
rm -f /usr/local/share/locale/fr/LC_MESSAGES/gprename.mo
rm -f /usr/local/share/locale/id/LC_MESSAGES/gprename.mo
rm -f /usr/local/share/locale/it/LC_MESSAGES/gprename.mo
rm -f /usr/local/share/locale/nl/LC_MESSAGES/gprename.mo
rm -f /usr/local/share/locale/pl/LC_MESSAGES/gprename.mo
rm -f /usr/local/share/locale/pt_BR/LC_MESSAGES/gprename.mo
rm -fr /usr/local/share/pixmaps/gprename
# Create temporary build directory and modify file locations.
install -d /home/guraknugen/Eget/Nerladdad programvara/GNU Linux/Verktyg/Filhantering/GPRename/gprename-2.6/build
install -d /home/guraknugen/Eget/Nerladdad programvara/GNU Linux/Verktyg/Filhantering/GPRename/gprename-2.6/build/locale
install -d /home/guraknugen/Eget/Nerladdad programvara/GNU Linux/Verktyg/Filhantering/GPRename/gprename-2.6/build/locale/ca
install -d /home/guraknugen/Eget/Nerladdad programvara/GNU Linux/Verktyg/Filhantering/GPRename/gprename-2.6/build/locale/cn_ZH
install -d /home/guraknugen/Eget/Nerladdad programvara/GNU Linux/Verktyg/Filhantering/GPRename/gprename-2.6/build/locale/de
install -d /home/guraknugen/Eget/Nerladdad programvara/GNU Linux/Verktyg/Filhantering/GPRename/gprename-2.6/build/locale/es
install -d /home/guraknugen/Eget/Nerladdad programvara/GNU Linux/Verktyg/Filhantering/GPRename/gprename-2.6/build/locale/fr
install -d /home/guraknugen/Eget/Nerladdad programvara/GNU Linux/Verktyg/Filhantering/GPRename/gprename-2.6/build/locale/id
install -d /home/guraknugen/Eget/Nerladdad programvara/GNU Linux/Verktyg/Filhantering/GPRename/gprename-2.6/build/locale/it
install -d /home/guraknugen/Eget/Nerladdad programvara/GNU Linux/Verktyg/Filhantering/GPRename/gprename-2.6/build/locale/nl
install -d /home/guraknugen/Eget/Nerladdad programvara/GNU Linux/Verktyg/Filhantering/GPRename/gprename-2.6/build/locale/pl
install -d /home/guraknugen/Eget/Nerladdad programvara/GNU Linux/Verktyg/Filhantering/GPRename/gprename-2.6/build/locale/pt_BR
perl -ne 's!\@INSTALLDIR\@!/usr/local!g ; print' < bin/gprename > build/gprename
/bin/sh: cannot create build/gprename: Directory nonexistent
make: *** [build] Fel 2
guraknugen@PB-laptop:~/Eget/Nerladdad programvara/GNU Linux/Verktyg/Filhantering/GPRename/gprename-2.6$ lla
totalt 88
drwxr-xr-x 2 guraknugen guraknugen  4096 2008-07-10 17:55 bin
-rwxr-xr-x 1 guraknugen guraknugen 32472 2008-07-10 17:54 COPYING
-rwxr-xr-x 1 guraknugen guraknugen  9659 2008-07-10 17:54 gprename.schemas
drwxr-xr-x 2 guraknugen guraknugen  4096 2008-07-10 17:55 icon
drwxr-xr-x 3 root       root        4096 2008-07-13 09:07 Linux
drwxr-xr-x 2 guraknugen guraknugen  4096 2008-07-10 17:55 locale
-rwxrwxrwx 1 guraknugen guraknugen  4428 2008-07-10 17:54 Makefile
drwxr-xr-x 2 guraknugen guraknugen  4096 2008-07-10 17:55 man
drwxr-xr-x 3 root       root        4096 2008-07-13 09:07 programvara
-rwxr-xr-x 1 guraknugen guraknugen 10738 2008-07-10 17:54 README
guraknugen@PB-laptop:~/Eget/Nerladdad programvara/GNU Linux/Verktyg/Filhantering/GPRename/gprename-2.6$ 
Som synes finns ingen mapp som heter build i den aktuella mappen.

Så vad har jag missat? Eller är det fel i Makefile? Den lär vara skapad igår eller liknande, så den kanske är lite otestad, vad vet jag?
Vänliga hälsningar

Johnny Rosenberg
ジョニー・ローゼンバーグ

IEEE 1541 - binära prefix
ISO 8601 - datum och tid

Återgå till "Programmering och webbdesign"