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