# **************************************************************************
# Fichero makefile.
# --------------------------------------------------------------------------
# Licencia GPL. Juan Gonzalez Gomez
# --------------------------------------------------------------------------
#
#***************************************************************************

# Edited for Debian GNU/Linux.
DESTDIR =

# ¿Dónde poner los binarios en el 'make install'?
BIN  = $(DESTDIR)/usr/local/bin

#-- Donde instalar las paginas man?
MAN  = $(DESTDIR)/usr/local/man

#-- Constantes para el empaquetado
MODULO=star-generic
VERSION=1.2.1
PACKNAME=$(MODULO)-$(VERSION)
PACKNAMEBIN=$(PACKNAME)-bin

#-- Directorio donde se encuentran los datos del programa
#-- (ficheros .glade, iconos, etc...). Por defecto se usa el
#-- directorio de trabajo, pero se puede especificar otro, pasandolo
#-- como parametro al Makefile
DATADIR=.

#-- Directorio donde se encuentran los datos, para la version
#-- que se instalara
DATADIR_INSTALL = /usr/local/share/$(MODULO)

#-- Librerias para la compilacion con GTK/GLADE
LIB_GLADE = `pkg-config --libs libgnomeui-2.0` \
            `pkg-config --libs libglade-2.0`   \

#---- Compilador
CC = gcc
CFLAGS = -Wall `pkg-config --cflags libgnomeui-2.0` \
               `pkg-config --cflags libglade-2.0`  

#---- Ejecutables
STAR_GENERIC = star-generic
STAR_GENERIC_STATIC = star-generic-static

#-- Objetivos por defecto
all: $(STAR_GENERIC) $(STAR_GENERIC_STATIC)

#--------------------------
#  STAR-GENERIC
#--------------------------
#-- Version que necesita tener instalada la libstargate para ejecutarse
STAR_GENERIC_DEP= $(STAR_GENERIC).o controles.o monitor.o conversion.o
$(STAR_GENERIC): $(STAR_GENERIC_DEP)
	    $(CC) -o $(STAR_GENERIC) $(STAR_GENERIC_DEP) $(LIB_GLADE) -lstargate 
      
$(STAR_GENERIC).o : $(STAR_GENERIC).c
	    $(CC) -c $(STAR_GENERIC).c $(CFLAGS) \
      -DPACKAGE_DATA_DIR=\""$(DATADIR)/"\"

clean::
	  rm -f $(STAR_GENERIC) $(STAR_GENERIC_DEP)
    
#-- Version que se compila con la libstargate ESTATICA
#-- Las dependencias son las mismas que en el caso anterior
#-- Solo cambia la opcion de linkado
$(STAR_GENERIC_STATIC): $(STAR_GENERIC_DEP)
	    $(CC) -o $(STAR_GENERIC_STATIC) $(STAR_GENERIC_DEP) \
            -lstargate-1.0.1 $(LIB_GLADE)

clean::
	  rm -f $(STAR_GENERIC_STATIC) $(STAR_GENERIC_DEP)		

#---------------------------
#-- INSTALACION
#---------------------------
#- Primero hay que recompilar el programa principal, indicando el
#- directorio donde se encuentran los datos
#- Despues se instalan los ficheros
install:
	     touch $(STAR_GENERIC).c
	     make DATADIR=$(DATADIR_INSTALL)
	     install -d $(BIN) $(DATADIR_INSTALL)
	     install $(STAR_GENERIC) $(BIN)
	     install $(STAR_GENERIC_STATIC) $(BIN)
	     install *.xpm $(DATADIR_INSTALL)
	     install *.png $(DATADIR_INSTALL)
	     install $(STAR_GENERIC).glade $(DATADIR_INSTALL)
      

#---------------------------
#-- DESINSTALACION
#---------------------------
uninstall:
	     rm -f $(BIN)/$(STAR_GENERIC) $(DATADIR_INSTALL)/*
	     rm -f $(BIN)/$(STAR_GENERIC_STATIC) $(DATADIR_INSTALL)/*
	     rm -rf $(DATADIR_INSTALL)

#------------------------------------------------
#-- Crear fichero .tar.gz
#-- SOLO PARA LA VERSION QUE SE BAJE DEL CVS!!
#------------------------------------------------
tarball: clean
	cd .. ; rm -rf $(PACKNAME) ; cp -r $(MODULO) $(PACKNAME) ; \
	tar vzcf $(PACKNAME).tar.gz $(PACKNAME)/* --exclude=CVS ; \
	rm -rf $(PACKNAME)
	
#------------------------------------------------
#-- Crear fichero .tar.gz con los binarios
#-- SOLO PARA LA VERSION QUE SE BAJE DEL CVS!!
#------------------------------------------------
tarball-bin:
	      touch $(STAR_GENERIC).c
	      make DATADIR=$(DATADIR_INSTALL)
	      install -d $(PACKNAMEBIN)
        #-- Copiar solo los ficheros binarios o los necesarios
        #-- en una instalacion
	      cp -a $(STAR_GENERIC)  $(STAR_GENERIC_STATIC) $(STAR_GENERIC).glade \
               *.xpm *.png $(PACKNAMEBIN)
	      cp -a Makefile.bin $(PACKNAMEBIN)/Makefile
        #-- Hacer el paquete
	      tar vzcf $(PACKNAMEBIN).tar.gz $(PACKNAMEBIN)

#-------------------------------------------------
#- Limpieza general
#-------------------------------------------------
clean::
	       rm -f *.pws *.bak *~ .tm*
	       rm -rf $(PACKNAMEBIN)
	       rm -f $(PACKNAMEBIN).tar.gz

#------------------------------------------------------------------------
#- Limpiar todos los .exe, si es que se ha compilado en Windows/Cygwin
#------------------------------------------------------------------------
clean:: 
	       rm -f *.exe

#--------------------------
#  REGLAS GENERICAS
#--------------------------
.c.o:		
		$(CC) $(CFLAGS) -c $<
