gerador automatico de Makefiles
Publicado por Pedro Robson Leão 11/06/2007
[ Hits: 8.437 ]
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;
3º EP - Poli USP - Angry Birds (angry bixos)
Converter arquivos Bitmap para ASCII-art
Nenhum comentário foi encontrado.
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
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
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Tem como instalar o gerenciador AMD Adrenalin no Ubuntu 24.04? (16)
Arch Linux - Guia para Iniciantes (2)
Problemas ao instalar o PHP (11)
Tenho dois Link's ( IP VÁLIDOS ), estou tentando fazer o failover... (0)