Hilfe bei Packageerstellung: PKG_CONFIGURED_*

zyrill

Neuer User
Mitglied seit
29 Jul 2009
Beiträge
89
Punkte für Reaktionen
0
Punkte
6
Hallo!

Ich versuche, ein neues Package für Freetz zu basteln und stecke etwas fest. Das Problem liegt in meiner *.mk-Datei und ist folgendes: Das Package wird brav vom Developerserver gesaugt und entpackt - ich kann es aber nicht bauen!

Das Problem ist, dass die Sourcen auf dem Dev-Server für meinen Geschmack durcheinander und unsauber verpackt sind und die Sourcen (und configure und so weiter) nicht im root liegen, sondern in einem Unterverzeichnis "src" der tar-Datei. Wenn ich in der *.mk-Datei nun einfach $(PKG_CONFIGURED_CONFIGURE) eintrage, wird die configure-Datei natürlich nicht gefunden und ich frage mich, ob ich die Sourcen jetzt neu packen und selbst irgendwo hochladen muss, oder, ob es eine Möglichkeit gibt, der Toolchain von Freetz mitzuteilen, dass sie in dieses Unterverzeichnis wechseln soll.

Ich habe bei den Sourcen und *.mk-Dateien einiger anderer Packages nachgesehen, habe aber keine verwertbaren Informationen bzw. ähnliche Fälle gefunden...

Vielen Dank schon einmal für Eure Hilfe,

viele Grüße,

zy
 
Zuletzt bearbeitet:
Code:
$(PKG)_DIR:=$(SOURCE_DIR)/$(pkg)-$($(PKG)_VERSION)/src
MfG Oliver
 
@oliver: so könnte es zwar gehen, aber ganz sauber ist es nicht, denn bei den meisten Makefile-Macros wird davon ausgegangen, dass $(PKG)_DIR auf das Top-Verzeichnis des Pakets zeigt.

@zyrill: wende diesen Patch an und definiere die $(PKG)_CONFIGURE_SUBDIR Variable in deinem Makefile
Code:
--- make/Makefile.in	(revision 4090)
+++ make/Makefile.in	(working copy)
@@ -483,7 +483,7 @@
 		FREETZ_TARGET_LFS="$(strip $(FREETZ_TARGET_LFS))" source $(FREETZ_BASE_DIR)/$(MAKE_DIR)/config.mipsel ; \
 		$(TARGET_CONFIGURE_ENV) \
 		$($(PKG)_CONFIGURE_ENV) \
-		./configure \
+		$(if $(strip $($(PKG)_CONFIGURE_SUBDIR)),$(strip $($(PKG)_CONFIGURE_SUBDIR))/configure,./configure) \
 		$(if $(findstring y,$($(PKG)_CONFIGURE_DEFOPTS)), $(TARGET_CONFIGURE_OPTIONS)) \
 		$($(PKG)_CONFIGURE_OPTIONS) \
 		$(if $(strip $(FREETZ_BACKUP_CONFIG_CACHE)),&& { $(call BACKUP_CONFIG_CACHE,after-$(pkg)) },) \
 
Wenn das configure-Skript im src-Verzeichnis ist, dann wird doch das Makefile hoffentlich nicht im TOP_DIR erstellt!?

MfG Oliver
 
Keine Ahnung, das wird uns zyrill hoffentlich berichten

Alternative Lösung:
Code:
--- make/Makefile.in	(revision 4090)
+++ make/Makefile.in	(working copy)
@@ -480,12 +480,14 @@
 		$(if $(strip $(FREETZ_BACKUP_CONFIG_CACHE)),$(call BACKUP_CONFIG_CACHE,before-$(pkg)),) \
 		$(TARGET_CONFIGURE_PRE_CMDS) \
 		$($(PKG)_CONFIGURE_PRE_CMDS) \
+		$(if $(strip $($(PKG)_CONFIGURE_SUBDIR)),cd $(strip $($(PKG)_CONFIGURE_SUBDIR));,) \
 		FREETZ_TARGET_LFS="$(strip $(FREETZ_TARGET_LFS))" source $(FREETZ_BASE_DIR)/$(MAKE_DIR)/config.mipsel ; \
 		$(TARGET_CONFIGURE_ENV) \
 		$($(PKG)_CONFIGURE_ENV) \
 		./configure \
 		$(if $(findstring y,$($(PKG)_CONFIGURE_DEFOPTS)), $(TARGET_CONFIGURE_OPTIONS)) \
 		$($(PKG)_CONFIGURE_OPTIONS) \
+		$(if $(strip $($(PKG)_CONFIGURE_SUBDIR)),&& { cd $(abspath $($(PKG)_DIR)); },) \
 		$(if $(strip $(FREETZ_BACKUP_CONFIG_CACHE)),&& { $(call BACKUP_CONFIG_CACHE,after-$(pkg)) },) \
 	)
 	touch $$@
 
An olistudents Einwand ist etwas dran. Wenn ich er13s Lösung nehme, wird das Makefile im TOP_DIR erstellt, und dann werden die Sourcen erst wieder nicht gefunden, weil die ja dann schon auch alle im TOP_DIR/src liegen...
Der Compile läuft jetzt auf jeden Fall (mit olistudents Vorschlag) durch. Ich fummel ein bisschen weiter und hoffe, dass ich den Rest alleine hinbekomme.

Vielen Dank auf jeden Fall für Eure wie immer blitzschnelle und kompetente Hilfe!

zy

Nachtrag 1: oh, ich sehe gerade, er13 hat noch einmal gepostet. Ich werde gleich nach dem Abschicken die neue Lösung noch einmal begutachten.
Nachtrag 2: geht... und nur zur Information: er13 sagt, nur mit der letzten Lösung werden Probleme bei dirclean vermieden.
 
Zuletzt bearbeitet:
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.