Du bist nicht angemeldet.

Werbeanzeige

Faule Socke

Community-Fossil

  • »Faule Socke« ist der Autor dieses Themas

Beiträge: 1 917

Wohnort: Schreibtischstuhl

  • Private Nachricht senden

1

21.07.2009, 03:01

Gesucht: Buildsystem/Makefilegenerator

Hi,

ich habe ein Projekt mit VS (eine Dll) geschrieben und möchte diese nun auf Linux portieren. Der Code ist dafür bereit, aber ich bräuchte noch ein Buildsystem o.ä. dass praktisch meine Projektdatei in ein makefile o.ä. umwandelt, so dass eben später ein .so erzeugt wird. Ich hab gegooglet und immerhin einen Makefilegenerator gefunden, aber damit konnte ich nichts anfangen, das war mir dann heute abend auch irgendwie zu hoch. Gibt es denn so einen Converter überhaupt, oder muss ich das wirklich selber schreiben? Ich hab in meiner Not ein kleines Programm geschrieben, dass mir zu allen cpp files Targets generiert aber das ist nicht wirklich das was ich haben will. Mal ganz davon abgesehen ist das make-Buildsystem jetzt auch nicht immer soo toll.

Kennt jemand entsprechende Software oder wie wird das normal gemacht, wenn man Software für mehrere Platformen oder auch mehrere IDEs verwendet?

PS: Ich hab an dem Linux, auf dem es laufen soll keine GUI...

Socke

// Edit: Das hier hab ich gefunden: http://www.gnu.org/software/automake/#introduction

Es sollte übrigens einfach zu verwenden sein, ich will nicht erst ellenlange Tutorials lesen und viel rumprobieren, bis es funktioniert, das sollte doch machbar sein, oder?

Socke

// Edit: Es sind Visual Studio (2005/2008) Projektdateien gemeint!

2

21.07.2009, 10:47

Uff, ich glaube Eclipse konnte aus einem Eclipse Projekt ein makefile erstellen.
Hab mir Eclipse aber eher kurz angeschaut.
Lieber dumm fragen, als dumm bleiben!

Mirlix

Supermoderator

Beiträge: 455

Beruf: Developer Advocate

  • Private Nachricht senden

3

21.07.2009, 10:50

Schau dir am besten premake oder cmake an. Premake ist extreme einfach zu bedien und fuer kleine Projekte echt praktisch. Fuer groessere und komplexere Sachen wuerde ich CMake nehmen, Ogre nimmt es zB. Das kann alles was du brauchst, ist am Anfang aber etwas ungewohnt.

Faule Socke

Community-Fossil

  • »Faule Socke« ist der Autor dieses Themas

Beiträge: 1 917

Wohnort: Schreibtischstuhl

  • Private Nachricht senden

4

21.07.2009, 11:38

Oh ich meinte natürlich eine Visual Studio 2005/2008 Projektdatei, hab ich vergessen, das zu sagen?^^

mirlix: premake ist nicht in der debian paketverwaltung wie es scheint, ich teste jetzt mal cmake.

Socke

Faule Socke

Community-Fossil

  • »Faule Socke« ist der Autor dieses Themas

Beiträge: 1 917

Wohnort: Schreibtischstuhl

  • Private Nachricht senden

5

22.07.2009, 10:36

Wow, danke mirlix. cmake gefällt mir sehr gut, ich brauche zwar noch etwas Übung aber eventuell kannst du mir ja n Tipp geben:

Ich hab alle .c und .cpp Files in einem Unterordner Src.
Alle .h Files in einem Unterordner Include.

Ich hab ein kleines Script geschrieben, welches mir folgende CMakeLists.txt erzeugt:

Quellcode

1
2
3
cmake_minimum_required(VERSION 2.6)
project(FastStream)
add_library(FastStream SHARED Src/FastStream.cpp Src/fsColorManager.cpp [...])


Dann ganz normale cmake und make laufen lassen und es wurde eine libFastStream.so erzeugt. Ist es möglich, diese in einen anderen Ordner erzeugen zu lassen, z.B. out? Mit add_library funktioniert das übrigens nicht (also einfach noch ein out/ davor schreiben).
Dann würd mich noch interessieren, ob ich auch i-wie die Dokumentation erzeugen lassen kann (sprich, Doxygen starten). Am besten so, dass dafür ein neues Target in der Makefile angelegt wird.
Und noch eine letzte Frage: Ist es möglich, in 2 Prozessen zu kompilieren? Weil das System hat 2 CPUs und die sollten doch auch genutzt werden...

Danke schonmal,

Faule Socke

Mirlix

Supermoderator

Beiträge: 455

Beruf: Developer Advocate

  • Private Nachricht senden

6

22.07.2009, 11:41

Das Ausgabeverzeichniss kannst du mit target_properties aendern.
Doxygen geht bestimmt irgendwie, habs selber aber nie ausprobiert.
Wieviele gerne zum kompileren genutzt werden haengt vom kompiler ab, denke ich

ThomasS

Frischling

Beiträge: 50

Wohnort: Landshut

Beruf: Student

  • Private Nachricht senden

7

22.07.2009, 14:45

Zwei Prozesse lassen sich nutzen, wenn man bei make die Option -j2 verwendet.

FalkT

Treue Seele

Beiträge: 125

Wohnort: AC

  • Private Nachricht senden

8

09.08.2009, 23:06

Zitat von »"Faule Socke"«


Quellcode

1
2
3
cmake_minimum_required(VERSION 2.6)
project(FastStream)
add_library(FastStream SHARED Src/FastStream.cpp Src/fsColorManager.cpp [...])



Kleine Anmerkung meinerseits als häufiger cmake-benutzer.

Schau dir mal das file-statment genauer an

Quellcode

1
2
file(GLOB FastStreamSourcen Src/*.cc)
add_library(FastStream SHARED FastStreamSourcen)


Weiterhin empfiehlt es sich nicht alles in eine CMakelists zu stecken, sondern für einzelne Module/Targets. Läßt sich dann besser warten oder verschieben.

DasBlub

Alter Hase

Beiträge: 803

Wohnort: Schweiz

Beruf: Programmierer

  • Private Nachricht senden

9

27.08.2009, 10:23

schau dir das mal an, hat bei mir mit VC90 project files gut funktioniert: https://scriptdev2.svn.sourceforge.net/svnroot/scriptdev2/tool/

fkrauthan

Supermoderator

Beiträge: 983

Wohnort: Vancouver

Beruf: Software engineer

  • Private Nachricht senden

10

28.08.2009, 19:55

im cmake wiki steht auch wie man das mit doxygen macht. Außerdem gibt es dorten tools zum automatischen convertieren von VS projektdateien nach cmake dateien.
Homepage: fkrauthan.de | Browser-game: flowergame.net

Werbeanzeige