nécessaire pour compilation sous Debian

Salut,

Je reviens d’une petite escapade « à la découverte d’Archlinux + panachage d’outils Suckless¹ ». J’ai essayé de réinstaller mon netbook avec une Debian « netinstall », en rajoutant mon environnement dwm&st, et je me suis aperçu qu’il n’y avait pas le nécessaire pour la compilation.

Quels paquets faut-il installer pour pouvoir compiler ? Existe-t-il un équivalent du paquet base-devel d’Archlinux ? Faut-il installer les choses séparément ? Y a-t-il des lignes de sources.list à ajouter² ?

Merci d’avance, et bonne soirée !

¹ : dwm (Dynamic Window Manager, window manager faisant du tiling) + st (Simple Terminal) + tabbed, compilés avec sélection de patchs adaptés à mon usage, + dmenu + slock/xautolock/X11 pour le verouillage et la suspension de l’écran. dwm et st n’ont pas de fichier de config, il faut éditer les sources pour changer les paramètres et recompiler, de nombreux patchs sont disponibles pour changer le comportement par défaut. Temps de compilation très court, à titre d’exemple : dépendance unique de dwm = X11, nombre de lignes de codes = ~2000

² : d’usage, je commente les lignes « deb-src »

tout dépend ce que tu veux compiler, il en existe différents types…

basiquement c’est du C, et il faut make. Une petite sélection des bouts de code qui me semblent pertinents pour la question :

[code]$ head Makefile

dwm - dynamic window manager

See LICENSE file for copyright and license details.

include config.mk
SRC = dwm.c
OBJ = ${SRC:.c=.o}
all: options dwm

$ cat config.mk

dwm version

VERSION = 6.0

Customize below to fit your system

paths

PREFIX = …/…/…
MANPREFIX = ${PREFIX}/share/man
X11INC = /usr/X11R6/include
X11LIB = /usr/X11R6/lib

Xinerama

XINERAMALIBS = -L${X11LIB} -lXinerama
XINERAMAFLAGS = -DXINERAMA

includes and libs

INCS = -I. -I/usr/include -I${X11INC}
LIBS = -L/usr/lib -lc -L${X11LIB} -lX11 ${XINERAMALIBS}

flags

CPPFLAGS = -DVERSION="${VERSION}" ${XINERAMAFLAGS}
#CFLAGS = -g -std=c99 -pedantic -Wall -O0 ${INCS} ${CPPFLAGS}
CFLAGS = -std=c99 -pedantic -Wall -Os ${INCS} ${CPPFLAGS}
#LDFLAGS = -g ${LIBS}
LDFLAGS = -s ${LIBS}

Solaris

#CFLAGS = -fast ${INCS} -DVERSION="${VERSION}"
#LDFLAGS = ${LIBS}

compiler and linker

CC = cc

$ grep include dwm.c
#include <errno.h>
#include <locale.h>
#include <stdarg.h>
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <X11/cursorfont.h>
#include <X11/Xatom.h>
#include <X11/Xlib.h>
#include <X11/Xproto.h>
#include <X11/Xutil.h>
#include <X11/extensions/Xinerama.h>
#include “config.h”
[/code]

Il devrait y avoir toutes les infos nécessaires, ce que je vois :
– make
– cc
– les « headers » de X11 + xinerama

C’est build-essential que tu cherches ?

Peut-être bien :mrgreen: À voir… je regarderais ça demain soir je pense.

Il serait judicieux de les dé-commenter. Le système de paquets de Debian couvre aussi bien la compilation de paquets sources que l’installation de paquets binaires. Voir : Travailler avec des paquets sources et Système de paquetage, outils et principes fondamentaux.

Je ne sais pas si les patches dont tu disposes fonctionneront sur les sources présentes dans l’archive Debian. Cependant, ces lectures restent utiles, car certaines dépendances peuvent être installées automatiquement grâce à [mono]apt[/mono] (mais pour cela, il faut avoir dé-commenter les lignes « [mono]deb-src[/mono] » du fichier [mono]/etc/apt/sources.list[/mono]).

Non, rien besoin d’ajouter dans le sources.list.

Si tu veux être tranquille, il te faudra le paquet build-essential.

Ensuite, selon le programme à compiler, il faut certaines bibliothèques (finit par -dev)

Par exemple, pour dwm, il faut libx11-dev et libxinerama-dev

[mono]libx11-dev[/mono] et [mono]libxinerama-dev[/mono] sont de bons exemples de dépendances qu’[mono]apt[/mono] est capable d’installer automatiquement (voir les dépendances du paquet source [mono]dwm[/mono]).

Autrement dit :

C’est exact. Malheureusement cette commande ne fonctionne que si les lignes commençant par « [mono]deb-src[/mono] » sont dé-commentées. Cela rallonge un peu le temps d’exécution de la commande [mono]aptitude update[/mono].

Merci pour les tuyaux : je vais tester tout ça :wink:

Désolé, je n’ai pas encore trouvé le temps d’essayer tout ça. Sans doute ce week-end. Je vous tiens au courant.