gerador automatico de Makefiles
Publicado por Pedro Robson Leão 11/06/2007
[ Hits: 8.417 ]
Código baseado no genmake original de ma_muquit@fccc.edu;
gera um arquivo makefile automaticamente.
#!/usr/bin/bash VERSION="1.0" EMAIL="ma_muquit@fccc.edu" VER="Makefile automatically generated by genmake $VERSION, `date '+%h-%d-%y'`" DATE=`date +%b-%d-%Y` AUTHOR="genmake $VERSION by $EMAIL" function genGenericMake() { local fname=${3:-"Makefile"}; local opc=${1}; local prog=${2}; local cc=gcc; local dir=; local sharedlibrary=; case ${opc} in "lib") dir="lib"; prog="lib${prog}.a";; "shared") dir="lib"; STRIP=""; prog="lib${prog}.so"; sharedlibrary="-shared";; *) STRIP=""; dir="bin";; esac [ ! -z "${sharedlibrary}" ] && { local machine=$(uname); [ "${machine}" == "SunOS" ] && local sharedlibrary="-G"; } cat >> ${fname} <<EOF ## # ${VER} # ${AUTHOR} # # \$Id: \$ # ## CC= ${cc} AR= ar cq RANLIB= ranlib baseinstall=./ DEFS= PROGDIR=../${dir} PROGNAME= \$(PROGDIR)/${prog} INCLUDES= -I. LIBS= # replace -O with -g in order to debug DEFINES= \$(DEFS) -DSYS_UNIX=1 CFLAGS= -O -Wall ifeq (\$(DEBUG),on) CFLAGS=-g -D__DEBUG__ -O -Wall endif OBJS = ${OBJS} .c.o: @rm -f \$@ \$(CC) \$(CFLAGS) \$(DEFINES) \$(INCLUDES) -c \$*.c all: \$(PROGNAME) install-strip \$(PROGNAME) : \$(OBJS) @rm -f \$@ @mkdir -p \$(PROGDIR) EOF [ "${opc}" != "lib" ] && { cat >> ${fname} <<EOF \$(CC) \$(CFLAGS) ${sharedlibrary} -o \$(PROGNAME) \$(OBJS) \$(LIBS) EOF } [ "${opc}" == "lib" ] && { cat >> ${fname} <<EOF \$(AR) \$@ \$(OBJS) \$(RANLIB) \$@ EOF } cat >> ${fname} <<EOF clean: rm -f \$(OBJS) \$(PROGNAME) core *~ *.ln install-strip: strip install strip: #Strip file ${STRIP}strip \$(PROGNAME) install: #Verify dir file mkdir -p \$(baseinstall) #Copy files cp \$(PROGNAME) \$(baseinstall) EOF } [ ${#} -lt 2 ] && { echo "Use: ${0} [opc <prog|lib|shared>] [prog name] <makefile name>"; exit 0; } STRIP="#"; opc=${1}; prog=${2}; make=${3:-"Makefile"}; OBJS="$( \ls -c1 *.c | tr '\n' ' ')"; OBJS="${OBJS//\.c/.o}"; [ -f ${make} ] && { echo "O arquivo ${make} ja existe"; exit 0; } genGenericMake ${opc} ${prog} ${make}; exit 1;
Tipos de Dados Abstrato - TDA - Números Complexos
Nenhum comentário foi encontrado.
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Preciso resolver um erro de DPKG (1)
Melhores Práticas de Nomenclatura: Pastas, Arquivos e Código (2)
Não to conseguindo resolver este problemas ao instalar o playonelinux (1)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta