Most hirtelen nem tudom, hogy mit lehetne rajta javítani a shared object támogatáson felül. Ha nem csak egy teszt verzió lenne, akkor minden bizonnyal lenne ötletem :)
De nézzük, hogyan is kell használni:
1) a Makefile-ban a modules változóban a feldolgozandó könyvtárak nevét fel kell sorolni
2) e könyvtárakban létre kell hozni egy-egy module.mk fájlt, statikus könyvtár és alkalmazás esetén
van is példa, igazából rém egyszerű.
Végezetül hadd ajánljak egy hasznos olvasmányt a make parancs doksija mellé:
Robert Meclenburg: Managing Projects with GNU Make, Third Edition (O'Reilly, 2005)
A fenti könyv és az OpenTTD forráskódja alapján készült el az alkotás :)
- Panther blogja
- A hozzászóláshoz be kell jelentkezni
- 1832 megtekintés
Hozzászólások
Tetszetős.
- A hozzászóláshoz be kell jelentkezni
Köszi :)
- A hozzászóláshoz be kell jelentkezni
Igen, a problema nem egyszeru, sok forras, rakat target, sok alkonyvtar...:)
Egyebkent az autoconf maga nem annyira rem bonyolult, kb fel ora alatt meg lehet tanulni alapszinten. Ami szopas, az az automake, azt par ora szenvedes utan feladtam. Az autoconf teljesen fuggetlen az osszes tobbi szornyedvenytol, szerintem azt erdemes megtanulni. Ez nagyon jo intro, tenyleg csak a lenyegre koncentral (semmi automake, autoegyeb, libtool, ac-blabla cuccot nem kever bele).
Amivel meg lehet impruvolni egy makefile-t (csak egy otlet ;)) azok a (GNU szerinti) sztenderd fo" targetek: install, dist, distclean, maintain-clean, {ps,pdf,dvi,info,html,man} generalas + installalas.
A.
- A hozzászóláshoz be kell jelentkezni
Kösz, majd megnézem.
Még nem sikerült rájönnöm, hogy lehet architektúra-függő végződést adni a fájloknak (linux: .so, OS X: .dylib), annyira nem néztem meg. Amit megcsinálnék még, azok tényleg a standard target-ek, meg normális függőség-kezelés (milyen fv-könyvtárakat használnak).
Egyszer már foglalkoztam az autoconf-fal, majd sort kerítek erre is, de csak apránként.
- A hozzászóláshoz be kell jelentkezni
Még nem sikerült rájönnöm, hogy lehet architektúra-függő végződést adni a fájloknak (linux: .so, OS X: .dylib)
Hehe, ha rajossz, szolj ;) en egy (ugyan me'g fejlesztes alatt allo) configure.ac-be a kovetkezo" borzalmat irtam:
AC_MSG_CHECKING([dynamic library extensions])
if test `uname` == Darwin ; then
DLEXT=dylib
DLSWC=-dynamiclib
DLDYN=-dynamic
AC_MSG_RESULT([dylib])
else
DLEXT=so
DLSWC=-shared
DLDYN=-rdynamic
AC_MSG_RESULT([so])
fi
ezzel minden kapcsolot beallit, amit a gcc-nek at kell adni. persze a feltetelen van mit javitani ;]
- A hozzászóláshoz be kell jelentkezni
Hoppá. GCC helyett libtool-t használtam, és azt meg nem ismerte a make (LIBTOOL implicit változó nincsen).
uname nélkül én sem tudom (legalábbis egyelőre). Azzal meg meglehetősen csúnya.
- A hozzászóláshoz be kell jelentkezni