Translate

9/12/14

Si yo lo hubiera sabido: Hoy me cagüen el IceWM desde cero me salió cero patatero

ximo@ximo-SN10E100:~/Descargas/icewm-1.3.8$ ./configure
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
checking for g++... g++
checking whether the C++ compiler works... yes
checking for C++ compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking whether the C++ compiler (g++) accepts no_rtti... yes
checking whether the C++ compiler (g++) accepts no_exceptions... yes
checking whether the C++ compiler (g++) accepts warn_xxx... yes
checking whether the C++ compiler (g++) accepts permissive... yes
checking for a BSD-compatible install... /usr/bin/install -c
checking for dirent.h that defines DIR... yes
checking for library containing opendir... none required

Web OS

3270ª Parte Si yo lo hubiera sabido: Hoy me cagüen el IceWM desde cero me salió cero patatero

compilar programas

compilar programas

Así que otra frustación mas, bueno en estos dos enlaces que están especializados en Ubuntu aunque se puede extender su saber a la Debian y sus derivadas y en general a todas las otras distros con la salvedad que hay que averiguar como se llama al paquete de desarrollo o paquetes, incluso aventuro que a otros SOs tipo BSDs también mucho de lo que hay se aplica incluso a todos los SOs que hagan uso del gcc o clang, mejor gcc para no liarla mas de lo que cabe.
Las bolas o tarballs están ya estandarizadas la diferencia entre .gz o bz2 es cuestión de almacenamiento en el servidor de donde las bajéis,  .bz2 pesan menos que .gz y por lo tanto bajan antes en condiciones normales.
El enlace en inglés es mas completo y dice mas cosas de un tirón en el enlace en español hay que buscar un poco mas pero viene a ser mas o menos lo mismo.
Siempre una vez abierta la bola hay que leerse el README y el INSTALL como entenderéis están en inglés pero es que todos los comandos están en inglés. Todas las bolas de última generación de hace unos años a esta parte van a piñón fijo esto es siempre hay que hacer un ./configure para saber que falta o que no, en el primer caso hay que ir poniendo lo que le hace falta para continuar la compilación y en el segundo si tenemos esa suerte pues ya solo faltará que hagamos el make y después el make install.
Normalmente  un ./ configure --help nos dará las opciones de configuración, yo esto os lo doy en concreto para Ubuntu y derivadas y en general otras distros o SOs pero tenéis que tener en cuenta que tanto las distros las otras como los otros SOs suelen tener el árbol de directorios de su padre y de su madre que quiere decir que siendo lo mismo van a parar a sitios diferentes los programas, normalmente se suele compilar aparte del binario, las librerías, la documentación, los iconos y lo que se considere por parte del desarrollador necesario para el buen funcionamiento del programa tanto en linux para tal distro o para la otra o para cualquier SO así que si hacéis caso a las instrucciones de arriba de los enlaces sacaréis algo en claro enseguida. Y con este complemento y sabiendo como es el árbol de directorios de dónde lo queráis instalar no tendréis problemas. Incluso podréis hacer paquetes para distribuir.
ximo@ximo-SN10E100:~/Descargas/icewm-1.3.8$ ./configure --help
`configure' configures this package to adapt to many kinds of systems.
Usage: ./configure [OPTION]... [VAR=VALUE]...
To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE. See below for descriptions of some of the useful variables.
Defaults for the options are specified in brackets.
Configuration:
-h, --help display this help and exit
--help=short display options specific to this package
--help=recursive display the short help of all the included packages
-V, --version display version information and exit
-q, --quiet, --silent do not print `checking ...' messages
--cache-file=FILE cache test results in FILE [disabled]
-C, --config-cache alias for `--cache-file=config.cache'
-n, --no-create do not create output files
--srcdir=DIR find the sources in DIR [configure dir or `..']
Installation directories:
--prefix=PREFIX install architecture-independent files in PREFIX
[/usr/local]
--exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
[PREFIX]
By default, `make install' will install all the files in
`/usr/local/bin', `/usr/local/lib' etc. You can specify
an installation prefix other than `/usr/local' using `--prefix',
for instance `--prefix=$HOME'.
For better control, use the options below.
Fine tuning of the installation directories:
--bindir=DIR user executables [EPREFIX/bin]
--sbindir=DIR system admin executables [EPREFIX/sbin]
--libexecdir=DIR program executables [EPREFIX/libexec]
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
--datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
--datadir=DIR read-only architecture-independent data [DATAROOTDIR]
--infodir=DIR info documentation [DATAROOTDIR/info]
--localedir=DIR locale-dependent data [DATAROOTDIR/locale]
--mandir=DIR man documentation [DATAROOTDIR/man]
--docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE]
--htmldir=DIR html documentation [DOCDIR]
--dvidir=DIR dvi documentation [DOCDIR]
--pdfdir=DIR pdf documentation [DOCDIR]
--psdir=DIR ps documentation [DOCDIR]
X features:
--x-includes=DIR X include files are in DIR
--x-libraries=DIR X library files are in DIR
System types:
--build=BUILD configure for building on BUILD [guessed]
--host=HOST cross-compile to build programs to run on HOST [BUILD]
--target=TARGET configure for building compilers for TARGET [HOST]
Optional Features:
--disable-option-checking ignore unrecognized --enable/--with options
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
--enable-depend Automatic .h dependencies. Requires GNU make and gcc.
--enable-debug Use this option if you want to debug IceWM
--disable-i18n Disable internationalization
--disable-nls Disable internationalized message
--disable-sm Don't support the X session managment protocol
--disable-shape Don't use X shape extension
--disable-shaped-decorations
Disable transparent frame decoration (titlebar,
borders), requires X shape extension (experimental)
--disable-gradients Support gradients
--disable-xrandr Disable XRANDR extension support
--enable-corefonts Support X11 core fonts
--disable-xfreetype Don't use XFreeType for text rendering.
Requires --enable-i18n.
--enable-guievents Enable GUI events (experimental)
--disable-xinerama Disable xinerama support
--disable-x86-asm Don't use optimized x86 assembly code
--disable-prefs Disable configurable preferences
--disable-keyconf Disable configurable keybindings
--disable-menuconf Disable configurable menus
--disable-winoptions Disable configurable window options
--disable-taskbar Disable builtin taskbar
--disable-winmenu Disable the window list menu
--enable-lite Build lightweight version of IceWM
--enable-menus-gnome2 Display GNOME 2 menus
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--with-x use the X Window System
--with-unicode-set=CODESET your iconv's unicode set in machine endian encoding
(e.g. WCHAR_T, UCS-4-INTERNAL, UCS-4LE, UCS-4BE)
--with-icesound=interfaces
List of audio interfaces for icesound. Requires
support for GUI events. Default: OSS,Y,ESound
--with-esd-config=path Path to esd-config
--with-mkfontdir=path Path to mkfontdir
--with-kdedatadir=path KDE's data directory (\$KDEDIR/share)
--with-libdir=path Default data directory (\$datadir/icewm)
--with-cfgdir=path System configuration directory (/etc/icewm)
--with-docdir=path Documentation directory (\$prefix/doc)
Some influential environment variables:
CXX C++ compiler command
CXXFLAGS C++ compiler flags
LDFLAGS linker flags, e.g. -L if you have libraries in a
nonstandard directory
LIBS libraries to pass to the linker, e.g. -l
CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if
you have headers in a nonstandard directory
CXXCPP C++ preprocessor
XMKMF Path to xmkmf, Makefile generator for X Window System

Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.
Report bugs to the package provider.
ximo@ximo-SN10E100:~/Descargas/icewm-1.3.8$

Normalmente lo -I/.../../... indica donde están los ficheros includes o cabeceras o cabezones o de desarrollo son los ficheros .h necesarios para la compilación en Linux estos ficheros se encuentran en los paquetes -dev, en otros SOs suelen ponerse ambas cosas al instalar un paquete por ejemplo en FBSD o PCBSD pero hay que indicarlos con su PATH o camino correspondiente para que el compilador lo encuentre.
lo -L/.../.../... son las librerías necesarias para el funcionamieno del programa normalmente los PATH o caminos de los includes y de las librerías no coinciden por eso hay que conducir en el configure al compilador, normalmente en Linux y en ciertas distros con hacer ./configure ya estaría todo hecho y listo para usar el make. Salvo que nos falten programas básicos, autoconf, automake, el gcc vete a saber que tenéis puesto y que no, normalmente con synaptic al lado es fácil complementar y dar solución enseguida a cualquier compilación eso si no gustáis de usar la consola o term para instalar cosas. En otros casos seguir el camino de probar y probar que mas tarde o temprano suele salir.
En cuanto a especificaciones de como instalar por ejemplo AfterStep desde cero o cualquier otro window manager en esas páginas se suele poner mucho flag que son avisos o condiciones para el compilador si lo queréis hacer exactamente para vuestro equipo (procesador) o si lo queréis hacer para otros o mas general, pues todo se puede hacer indicándolo previamente al make e incluso después del ./configure en cuanto a usar clang o gcc pues ya sabéis cuando mas azúcar mas dulce o que el saber no ocupa lugar o que hay que aprender de tó para obtener mas o menos lo mismo. :) Ximo

No hay comentarios: