Foros del Web » Programación para mayores de 30 ;) » C/C++ »

cross-compiling con makefile

Estas en el tema de cross-compiling con makefile en el foro de C/C++ en Foros del Web. Estoy realizando un proyecto en C++ y me gustaría que fuera multiplataform a. De momento trabajo en MAC OS X desde terminal que más o ...
  #1 (permalink)  
Antiguo 05/10/2009, 06:29
 
Fecha de Ingreso: abril-2009
Mensajes: 2
Antigüedad: 15 años
Puntos: 0
cross-compiling con makefile

Estoy realizando un proyecto en C++ y me gustaría que fuera multiplataform a. De momento trabajo en MAC OS X desde terminal que más o menos es equivalente con Linux, pese a tener diferencias. Compilo mis proyectos mediante makefiles creados a mano, sin Autotools. Mi duda es que quiero que este proyecto se pueda usar para diferentes arquitecturas (ARM,X86, X86_64,PPC) y para distintos S.O. (Windows Xp y 7, Mac OS X y Linux) y me gustaría saber si es posible realizar esta tarea dentro de un mismo MAKEFILE.

He estado leyendo sobre el tema pero no me terminan de quedar claro las cosas. Compilo y enlazo con GCC que es compatible con las arquitecturas y creo que también con los Sistemas operativos. Creo que esta tarea se podría hacer portando el código a cada una de las arquitecturas y sistemas operativos y ahcer paso a paso y yendo uno por uno. Pero claro si puedo hacer esto de una vez con un MAKEFILE o alguna otra cosa.

Este es el makefile modelo con el que trabajo.

Se que existe una variable llamada arch para la arquitectura que no sé usar pero para seleccionar el Sistema Operativo no tengo absolutamente nada.

Segun he ido mirando por internet voy a tener que crear un makefile para cada combinación de arquitectura y sistema operativo. Luego bastara con un shell script para hacerlo todo de forma secuencial.

El problema es definir la arquitectura y el SO.
  #2 (permalink)  
Antiguo 05/10/2009, 06:31
 
Fecha de Ingreso: abril-2009
Mensajes: 2
Antigüedad: 15 años
Puntos: 0
Respuesta: cross-compiling con makefile

Le makefile
Código:
CC=g++
CFLAGS=-c -Wall -Werror 
LDFLAGS=-g -O3 -lpthread -wlpdstm -L /Users/jorgevegasanchez/Desktop/SwissTM/recompilacion/files-MacOS/LIBRERIAS-MAC/wlpdstm-MAC/lib/libwlpdstm.a
SOURCES=thread-exV-OpenCL-barrier.c 
OBJECTS=$(SOURCES:.cpp=.o)
EXECUTABLE=threadV-OpenCL-barrier

all: $(SOURCES) $(EXECUTABLE)
	
$(EXECUTABLE): $(OBJECTS)
	$(CC) $(LDFLAGS) $(OBJECTS) -o $@

.cpp.o:
	$(CC) $(CFLAGS) $< -o $@

.PHONY: clean
	clean:
	-rm *.o
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:18.