gerador automatico de Makefiles
Publicado por Pedro Robson Leão 11/06/2007
[ Hits: 8.644 ]
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;
Nenhum comentário foi encontrado.
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
Programa fora de escala na tela do pc (33)
Eu queria adicionar a incon do wifi e deixa transparente no fluxbox no... (0)









