IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

Instal·lació

L'ordre make en sistemes de la família Debian/Ubuntu és proporcionada pel paquet del mateix nom:

$ whereis make
make: /usr/bin/make /usr/share/man/man1/make.1.gz
$ dpkg -S /usr/bin/make
make: /usr/bin/make

Pe tant per instal·lar-la:

$ sudo apt-get install make

Entorns de desenvolupament i entorns de producció

Entorn de desenvolupament

  • L'entorn de desenvolupament el tindreu a la HOME de l'usuari desenvolupador
  • Es pot estar treballant en múltiples projectes, per exemple pot haver-hi una carpeta general per projecte:
  • $HOME/development
  • Un projecte concret --> Carpeta $HOME/development/nom_delprojecte
Criteris:
  • Només tenim el codi font de les aplicacions: executables/binaris són creats per Makefile (només cas de llenguatges compilats)
  • L'estructura ja la fem pensant en crear un paquet Debian
  • L'entorn de desenvolupament està versionat (p.ex. amb Subversion)
  • L'entorn de desenvolupament ja utilitza l'estructura típica del sistema de fitxers. Per exemple un fitxer de configuració de sistema anirà a:
$HOME/development/nom_delprojecte/etc/fitxerdeconfiguracio.conf
$HOME/development/nom_delprojecte
|
\_Makefile
|
\_debian


Estructura mínima del Makefile:

clean:

#només en llenguatges compilats
build:

#copiar els fitxers de l'entorn de producció (path relatius a l'usuari) al sistema (segons estàndard FHS)
install:

Makefile

Exemples

Esquelet d'aplicació Debian

El podeu obtenir amb subversion:

$ svn co http://www.iesebre.com/subversion/projectes/bashdebianesqueleton/

El fitxer (a data --acacha 16:35, 25 feb 2011 (UTC)) és:

#!/usr/bin/make -f

# This makefile has to be in a folder with name
#   APLICATIONNAME_in_lower_case-VERSION_in_lover_case
#   Example: bashdebianesqueleton-0.1
APLICATION_NAME=bashdebianesqueleton
VERSION=0.1

#DEVELOPER ENVIRONMENT VARIABLES:
DEBIAN_PACKAGE_CREATOR_FULLNAME=Sergi Tur Badenas
DEBIAN_PACKAGE_CREATOR_EMAIL=acacha@gmail.com
DEBIAN_PACKAGE_LICENSE=gpl3

#INSTALL OPTIONS
OWNER=root
GROUP=root
INSTALL=/usr/bin/install
SHAREDIR=usr/share/$(APLICATION_NAME)
DOCDIR=usr/share/doc/$(APLICATION_NAME)

#...

#TODO
clean: 

install: 
	mkdir -p $(DESTDIR)/$(DOCDIR)
	$(INSTALL) -o $(OWNER) -g $(GROUP) -m 644 $(DOCDIR)/TODO $(DESTDIR)/$(DOCDIR)

uninstall:
	rm -f $(DOCDIR)

install_dev_tools:
	/usr/bin/apt-get -y --force-yes install dh-make fakeroot \
	build-essential devscripts debhelper

build_workspace: 
	export DEBFULLNAME="$(DEBIAN_PACKAGE_CREATOR_FULLNAME)"; \
	/usr/bin/dh_make -e $(DEBIAN_PACKAGE_CREATOR_EMAIL) \
	 --packagename $(APLICATION_NAME) --createorig --single

debian:
	/usr/bin/dpkg-buildpackage


Simbols

a hyphen–minus (-), specifying that errors are ignored
an at sign (@), specifying that the command is not printed to standard output before it is executed
a plus sign (+), the command is executed even if Make is invoked in a "do not execute" mode


Continue on errors

Quan desenvolupem un Makefile, ens podem trobar un problema ja que la seva execució s'atura en cas que es trobe algun error. A vegades, ens pot interessar que salte els errors i continue en la execució. Això es fa introduint el caràcter "-" davant de la comanda.

-mv /nom_fitxer /desti

Així, encara que no existeixi el fitxer, la execució del Makefile continuarà.

NOTA: Algunes comandes com mv, cp, rm tenen opcions per a continuar i no mostrar error. En aquests casos no fa falta utilitzar el "-", algunes altres no tenen aquesta opció, i ens pot interessar utilitzar-lo

Treballar amb subversion

Vegeu també

Enllaços externs