Log in

Bekijk de volledige versie : Programm mit cmake kompilieren



bauerj
06-06-2010, 17:27
Hallo,

ich wollte ein Programm für meinen Router kompilieren, aber statt make wird cmake zum builden benutzt:( cmake ist nicht in den Paketquellen enthalten und ich kriege die Sourcen nicht mit make gebuildet...


Ist es eigentlich möglich in einem anderen Linux-System Programme für die Box zu kompilieren, oder brauche ich dafür zwangsläufig den 1.4er Kernel und einen Mipsel Prozessor?

carterb
08-06-2010, 09:54
Hi,

schau mal hier, ist ein Link zum optware Development.
Du könntest Dir ein neues Makefile schreiben und das Paket auf deinem Linux-Rechner crosskompilieren. Der Aufbau der Makefiles ist dort auch erläutert...
Auf dem Router selber kompiliert man eigentlich nicht, das dauert mitunter zu lange und genau dafür gibt es ja die buildroots! Ein weiterer Vorteil ist, wenn Du Dir einmal ein eigenes ipkg-Package erstellt hasst, kannst Du es ablegen und bei änderungen nicht wieder alle Pakete auf dem Router kompilieren.
http://www.nslu2-linux.org/wiki/Optware/AddAPackageToOptware?from=Unslung.AddAPackageToUns lung

bauerj
08-06-2010, 19:22
Ah, ok, danke schon mal dafür:)


Klappt aber nicht ganz:

root@bauerj-Ubuntu:/opt/optware/oleg# make popt
rm -f /opt/optware/oleg/toolchain/buildroot/.built
rm -rf /opt/optware/oleg/toolchain/mipsel-linux-uclibc/gcc-4.1.1-uclibc-0.9.28
make -C /opt/optware/oleg/toolchain/buildroot LINUX_HEADERS_SOURCE=linux-libc-headers-oleg.tar.bz2 LINUX_HEADERS_UNPACK_DIR=/opt/optware/oleg/toolchain/buildroot/toolchain_build_mipsel/linux \
UCLIBC_CONFIG_FILE=/opt/optware/oleg/sources/buildroot/uClibc-0.9.28.config
make[1]: Betrete Verzeichnis '/opt/optware/oleg/toolchain/buildroot'

Checking build system dependencies:
CC clean: Ok
CXX clean: Ok
CPP clean: Ok
CFLAGS clean: Ok
CXXFLAGS clean: Ok
sed works: Ok
which installed: Ok
GNU make version '3.81': Ok
[: 147: Illegal number: gcc
C compiler '/usr/bin/gcc'
C compiler version 'gcc': Ok
bison installed: Ok
flex installed: Ok
gettext installed: Ok
Build system dependencies: Ok

make -j1 -C /opt/optware/oleg/toolchain/buildroot/toolchain_build_mipsel/binutils-2.17.50.0.8-build all
make[2]: Betrete Verzeichnis '/opt/optware/oleg/toolchain/buildroot/toolchain_build_mipsel/binutils-2.17.50.0.8-build'
make[3]: Betrete Verzeichnis '/opt/optware/oleg/toolchain/buildroot/toolchain_build_mipsel/binutils-2.17.50.0.8-build'
make[4]: Betrete Verzeichnis '/opt/optware/oleg/toolchain/buildroot/toolchain_build_mipsel/binutils-2.17.50.0.8-build/libiberty'
make[5]: Betrete Verzeichnis '/opt/optware/oleg/toolchain/buildroot/toolchain_build_mipsel/binutils-2.17.50.0.8-build/libiberty/testsuite'
make[5]: Für das Ziel »all« ist nichts zu tun.
make[5]: Verlasse Verzeichnis '/opt/optware/oleg/toolchain/buildroot/toolchain_build_mipsel/binutils-2.17.50.0.8-build/libiberty/testsuite'
make[4]: Verlasse Verzeichnis '/opt/optware/oleg/toolchain/buildroot/toolchain_build_mipsel/binutils-2.17.50.0.8-build/libiberty'
make[4]: Betrete Verzeichnis '/opt/optware/oleg/toolchain/buildroot/toolchain_build_mipsel/binutils-2.17.50.0.8-build/intl'
make[4]: Für das Ziel »all« ist nichts zu tun.
make[4]: Verlasse Verzeichnis '/opt/optware/oleg/toolchain/buildroot/toolchain_build_mipsel/binutils-2.17.50.0.8-build/intl'
make[4]: Betrete Verzeichnis '/opt/optware/oleg/toolchain/buildroot/toolchain_build_mipsel/binutils-2.17.50.0.8-build/bfd'
Making info in doc
make[5]: Betrete Verzeichnis '/opt/optware/oleg/toolchain/buildroot/toolchain_build_mipsel/binutils-2.17.50.0.8-build/bfd/doc'
restore=: && backupdir=".am$$" && \
am__cwd=`pwd` && cd /opt/optware/oleg/toolchain/buildroot/toolchain_build_mipsel/binutils-2.17.50.0.8/bfd/doc && \
rm -rf $backupdir && mkdir $backupdir && \
if (/opt/optware/oleg/toolchain/buildroot/toolchain_build_mipsel/binutils-2.17.50.0.8/missing makeinfo --split-size=5000000 --split-size=5000000 --version) >/dev/null 2>&1; then \
for f in /opt/optware/oleg/toolchain/buildroot/toolchain_build_mipsel/binutils-2.17.50.0.8/bfd/doc/bfd.info /opt/optware/oleg/toolchain/buildroot/toolchain_build_mipsel/binutils-2.17.50.0.8/bfd/doc/bfd.info-[0-9] /opt/optware/oleg/toolchain/buildroot/toolchain_build_mipsel/binutils-2.17.50.0.8/bfd/doc/bfd.info-[0-9][0-9] /opt/optware/oleg/toolchain/buildroot/toolchain_build_mipsel/binutils-2.17.50.0.8/bfd/doc/bfd.i[0-9] /opt/optware/oleg/toolchain/buildroot/toolchain_build_mipsel/binutils-2.17.50.0.8/bfd/doc/bfd.i[0-9][0-9]; do \
if test -f $f; then mv $f $backupdir; restore=mv; else :; fi; \
done; \
else :; fi && \
cd "$am__cwd"; \
if /opt/optware/oleg/toolchain/buildroot/toolchain_build_mipsel/binutils-2.17.50.0.8/missing makeinfo --split-size=5000000 --split-size=5000000 -I /opt/optware/oleg/toolchain/buildroot/toolchain_build_mipsel/binutils-2.17.50.0.8/bfd/doc \
-o /opt/optware/oleg/toolchain/buildroot/toolchain_build_mipsel/binutils-2.17.50.0.8/bfd/doc/bfd.info /opt/optware/oleg/toolchain/buildroot/toolchain_build_mipsel/binutils-2.17.50.0.8/bfd/doc/bfd.texinfo; \
then \
rc=0; \
cd /opt/optware/oleg/toolchain/buildroot/toolchain_build_mipsel/binutils-2.17.50.0.8/bfd/doc; \
else \
rc=$?; \
cd /opt/optware/oleg/toolchain/buildroot/toolchain_build_mipsel/binutils-2.17.50.0.8/bfd/doc && \
$restore $backupdir/* `echo ".//opt/optware/oleg/toolchain/buildroot/toolchain_build_mipsel/binutils-2.17.50.0.8/bfd/doc/bfd.info" | sed 's|[^/]*$||'`; \
fi; \
rm -rf $backupdir; exit $rc
WARNING: `makeinfo' is missing on your system. You should only need it if
you modified a `.texi' or `.texinfo' file, or any other file
indirectly affecting the aspect of the manual. The spurious
call might also be the consequence of using a buggy `make' (AIX,
DU, IRIX). You might want to install the `Texinfo' package or
the `GNU make' package. Grab either from any GNU archive site.
make[5]: *** [/opt/optware/oleg/toolchain/buildroot/toolchain_build_mipsel/binutils-2.17.50.0.8/bfd/doc/bfd.info] Fehler 1
make[5]: Verlasse Verzeichnis '/opt/optware/oleg/toolchain/buildroot/toolchain_build_mipsel/binutils-2.17.50.0.8-build/bfd/doc'
Making info in po
make[5]: Betrete Verzeichnis '/opt/optware/oleg/toolchain/buildroot/toolchain_build_mipsel/binutils-2.17.50.0.8-build/bfd/po'
make[5]: Für das Ziel »info« ist nichts zu tun.
make[5]: Verlasse Verzeichnis '/opt/optware/oleg/toolchain/buildroot/toolchain_build_mipsel/binutils-2.17.50.0.8-build/bfd/po'
make[5]: Betrete Verzeichnis '/opt/optware/oleg/toolchain/buildroot/toolchain_build_mipsel/binutils-2.17.50.0.8-build/bfd'
make[5]: Für das Ziel »info-am« ist nichts zu tun.
make[5]: Verlasse Verzeichnis '/opt/optware/oleg/toolchain/buildroot/toolchain_build_mipsel/binutils-2.17.50.0.8-build/bfd'
make[4]: *** [info-recursive] Fehler 1
make[4]: Verlasse Verzeichnis '/opt/optware/oleg/toolchain/buildroot/toolchain_build_mipsel/binutils-2.17.50.0.8-build/bfd'
make[3]: *** [all-bfd] Fehler 2
make[3]: Verlasse Verzeichnis '/opt/optware/oleg/toolchain/buildroot/toolchain_build_mipsel/binutils-2.17.50.0.8-build'
make[2]: *** [all] Fehler 2
make[2]: Verlasse Verzeichnis '/opt/optware/oleg/toolchain/buildroot/toolchain_build_mipsel/binutils-2.17.50.0.8-build'
make[1]: *** [/opt/optware/oleg/toolchain/buildroot/toolchain_build_mipsel/binutils-2.17.50.0.8-build/binutils/objdump] Fehler 2
make[1]: Verlasse Verzeichnis '/opt/optware/oleg/toolchain/buildroot'
make: *** [/opt/optware/oleg/toolchain/buildroot/.built] Fehler 2
root@bauerj-Ubuntu:/opt/optware/oleg#

Ich habe die benötigten Dateien mit kaputten Link selbst geladen, daher kann der Fehler also nicht kommen....