make: manifest-datei und abhaengigkeiten

dettus

Bicycle User
kennt ihr vielleicht einen eleganten weg?

bisher haben wir bei uns auf der arbeit immer das compilieren statt mit make mit manifest-files gemacht.
die enthielten dann so eine liste von dateien:

manifest_eins.mft:
Code:
bla.c
fasel.c
troet.c

manifest_zwei.mft:
Code:
# kommentar
# svn-id tag
# kommentar
wer.c
das.c
liest.c
ist.c
#doof.c

ein tcl-skript hat dann immer die manifests gelesen, compiliert, und ein .a drausgebaut.
jetzt will ich das ganze mal entsorgen und durch ein makefile ersetzen.

weil ein build immer KOMPLETT lief. (YUK!!!!!)

faellt euch ein eleganter weg ein wie ich in den makefiles sowas hier coden koennte:
Code:
libeins.a: (INHALTVONMANIFEST_EINS)
 buildskript $@ $+
libzwei.a: (INHALTVONMANIFEST_ZWEI)
 buildskript $@ $+
libdrei.a: (INHALTVONMANIFEST_DREI)
 buildskript $@ $+

(ich muss jetzt der fairness halber sagen dass es natuerlich NICHT um .c geht. aber es ist leichter mein ansinnen damit zu verdeutlichen. fangt jetzt also bitte nicht an die gcc-manpage zu durchforsten.)
 
Keine Ahnung, ob das ggf. einfacher ist: Apache Ant?!
Das Ding benutzt ein build.xml (sowas wie euer Manifest), ggf. ist das einfacher zu stricken.. Fummele mich gerade auch erst ins Thema ein, von daher ist's ggf. eine bescheuerte Idee.... :ugly:

http://ant.apache.org/
Apache Ant is a Java library and command-line tool whose mission is to drive processes described in build files as targets and extension points dependent upon each other. The main known usage of Ant is the build of Java applications. Ant supplies a number of built-in tasks allowing to compile, assemble, test and run Java applications. Ant can also be used effectively to build non Java applications, for instance C or C++ applications. More generally, Ant can be used to pilot any type of process which can be described in terms of targets and tasks.
 
Das kommt darauf an welches make du verwendest und wie portabel das sein muss. Je nachdem geht das ziemlich einfach oder kann auch etwas komplexer werden.
 
@elwood: danke, aber mit ant kennt sich hier bei uns im haus auch niemand aus. ;) von daher wuerde ich wenn es sich einrichten laesst doch am liebsten bei make bleiben.

@kamikaze: ich benutze ein gnu make.
 
Das FreeBSD make kann da ziemlich coole Sachen, die mit GNU make leider nicht gehen.
 
*g*
glaube ich dir gerne ;)
nun, ich denke es wird doch wohl auf ein wenig perl-gebastel hinauslaufen.

aber dank euch!
 
Zurück
Oben