-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile.build
73 lines (57 loc) · 1.93 KB
/
Makefile.build
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
include Makefile.objs
#########################################################################
## Inclua os nomes dos arquivos do seu projeto na variável MYOBJS, porém usando
## extensões .o ao invés de .c ou .cc.
## Ex: se seu projeto contém o arquivo proto.cc, modifique MYOBJS assim:
## MYOBJS = proto.o
## Ex. 2: no caso de seu projeto conter os arquivos proto.cc e session.cc:
## MYOBJS = proto.o session.o
##
MYOBJS=demo.o
# Modifique a variável PROG para o nome do programa executável a ser gerado.
# Neste exemplo, o programa se chamará "demo"
PROG=demo
# Substitua aqui o nome do seu arquivo com a especificação ASN1 ... pode haver um ou mais arquivos
ASN1SRC:=msg.asn1
#########################################################################
## NÃO MODIFIQUE AS LINHAS ABAIXO !!!
#########################################################################
ASN1PARSER=../bin/gen_asn1
ASN1SRCS:=$(addprefix ../,$(ASN1SRC))
SHELL=/bin/bash
arch=$(shell arch)
ifeq ($(arch), x86_64)
libasn=asn1++_64
else
libasn=asn1++_32
endif
CFLAGS=-g -I. -I../include
LDFLAGS=-L../lib -l$(libasn)
all: $(OBJS) $(TOBJS) $(MYOBJS)
g++ $(CFLAGS) -o $(PROG) $(TOBJS) $(MYOBJS) $(LDFLAGS)
@echo ""
@echo Pronto: o programa compilado está em \"build/$(PROG)\"
@echo ""
.c.o:
gcc -g $(CFLAGS) -c $<
$(MYOBJS): %.o: ../%.cc
g++ -c $(CFLAGS) -c $<
.PHONY: clean
.PHONY: cleanup
.PHONY: all
clean: cleanup asn1
cleanup:
@rm -f *.c *.h *.o demo
asn1: $(ASN1SRCS)
@asn1c $(ASN1SRCS) > asn1.log 2>&1
@rm -f converter-sample.c
@grep ^Compiled asn1.log | cut -d" " -f2 | grep -v h$$ | sed s/.c$$/.o/ > asn1.tipos
@grep ^Copied asn1.log | egrep -o "[^ ]+[ch]"$$ | grep -v converter-sample > asn1.support
@rm -f $$(<asn1.support)
#@echo -n OBJS= > Makefile.objs
#@paste -d" " -s asn1.support >> Makefile.objs
@echo "" >> Makefile.objs
@echo -n TOBJS= >> Makefile.objs
@paste -d" " -s asn1.tipos >> Makefile.objs
$(ASN1PARSER) $(ASN1SRCS)
@touch asn1