Makefile 2.36 KB
############################## MAKEFILE VLIBRAS ############################
#																		   #						   
#	Bruno Santos	   				      								   #
#	brunosantos@lavid.ufpb.br  											   #
#   Ezequiel Silva														   #
#	ezequielsilva@lavid.ufpb.br											   #
#																		   #
############################################################################

# Includes
CFLAGS = -I C:\Python27\include -I include -I update\include -I "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include"

# Link com as libs utilizadas
LFLAGS = -link C:\Python27\libs\python27.lib 

# Compilador Nativo
CC = cl

# Nome do arquivo de saída
OUT = testLibras




# Arquivos de implementação 
FILES = src\pyTradutor.cpp src\pyClip.cpp update\src\pyVlibrasUpdate.cpp

#Headers
INCLUDES = include\pyTradutor.h include\pyClip.h update\include\pyVlibrasUpdate.h

CLEAN_OBJ = del -q *.obj

HOME = %homepath%

#Gera executável testLibras
all: $(FILES) $(INCLUDES) src\testLibras.cpp 
	$(CC) -Fe$(OUT) -EHsc  src\testLibras.cpp $(FILES) $(CFLAGS) $(LFLAGS)
	$(CLEAN_OBJ)

#Gera dll na arquitetura x86
plugin-x86: $(FILES) $(INCLUDES)
	IF NOT EXIST plugin\Plugin-x86 mkdir plugin\Plugin-x86
	$(CC)  -Feplugin\Plugin-x86\CorePlugin   -LD plugin\corePlugin.cpp $(FILES) -I plugin\corePlugin.h  -EHsc $(CFLAGS) $(LFLAGS)
	$(CLEAN_OBJ)

#Gera dll na arquitetura x64
plugin-x64: $(FILES) $(INCLUDES)
	IF NOT EXIST plugin\Plugin-x64 mkdir plugin\Plugin-x64
	$(CC) -Feplugin\Plugin-x64\CorePlugin -EHsc -LD plugin\corePlugin.cpp $(FILES) -I plugin\corePlugin.h $(CFLAGS) $(LFLAGS)
	$(CLEAN_OBJ)
	
#Gera .obj da classe de teste
testLibras: $(FILES) $(INCLUDES) src\testLibras.cpp
	$(CC) -c -FotestLibras -EHsc Main.cpp $(FILES) $(CFLAGS) $(LFLAGS)

#Gera.obj do pyTradutor
pyTradutor: src\pyTradutor.cpp src\pyTradutor.h
	$(CC) -c -FopyTradutor -EHsc src\pyTradutor.cpp $(CFLAGS) $(LFLAGS)

#Gera .obj do pyClip
pyClip: src\pyClip.cpp src\pyClip.h
	$(CC) -c -FopyClip -EHsc src\pyClip.cpp $(CFLAGS) $(LFLAGS)

#Limpa arquivos objetos e executáveis criados
clean:
	del -q *.exe *.obj 
	rm -rf doc

#Limpa dll criada em arquitetura x-86
clean-plugin-x86:
	del -q plugin\Plugin-x86\*

#Limpa dll criada em arquiterutra x64	
clean-plugin-x64:
	del -q plugin\Plugin-x64\* 

#Gera executável para testar a dll
test-plugin:
	$(CC) plugin\testPlugin.cpp -EHsc
	$(CLEAN_OBJ)
	
#Gera documentação
doc:
	doxygen doc_config