Francisco Sanz García wrote, On 04.11.2009 10:42 Uhr:
Hello.

I'm trying to cross build the boinc project using  mingw32 (i686-pc-mingw32)
but I found several problems. Is there any way to do the configure step to
reduce this problems.

This would only work for the library and the API, i.e. what's needed to build Windows applications, not the client or the server code.

If that's what you want: I recently added some include fixes that are enabled with CPPFLAGS=-DMINGW_WIN32.

I'll attach the Makefile that I am using, which refers to an older Version of BOINC and still builds boinc_zip; you might want to remove this parts. It requires BOINC_SRC to be set to the BOINC source directory and BOINC_PREFIX to the install prefix if you want to use the install target. Apart from that I'm using the config.h from win_build and don't use autoconf for a cross-build.

Eric Korpela has integrationg this into autoconf on his todo list, but it may take some time until he gets to it.

Best,
Bernd

# Makefile for building BOINC with MinGW (gcc and gnumake)

# headers to install

HEADERS = version.h api/boinc_api.h api/graphics2.h lib/app_ipc.h 
lib/boinc_win.h \
        lib/common_defs.h lib/diagnostics.h lib/diagnostics_win.h lib/filesys.h 
lib/hostinfo.h \
        lib/proxy_info.h lib/prefs.h lib/miofile.h lib/mfile.h lib/parse.h 
lib/util.h \
        zip/boinc_zip.h win_build/config.h


# objects to compile

API_OBJ = boinc_api.o graphics2_util.o

GPH_OBJ = graphics2.o graphics2_util.o

LIB_OBJ = util.o win_util.o app_ipc.o diagnostics.o diagnostics_win.o filesys.o 
\
        hostinfo.o md5.o md5_file.o mem_usage.o mfile.o miofile.o parse.o 
prefs.o \
        proxy_info.o str_util.o shmem.o base64.o stackwalker_win.o

ZIP_OBJ = boinc_zip.o z_win32.o win32zip.o zipup.o zipfile.o zip.o z_globals.o 
z_fileio.o \
        z_util.o trees.o deflate.o zipinfo.o win32.o unzip.o unshrink.o 
unreduce.o ttyio.o \
        process.o match.o list.o inflate.o globals.o fileio.o extract.o 
explode.o envargs.o \
        crctab.o crc32.o apihelp.o api.o


# libraries to build finally

API_BIN = libboinc_api.a
LIB_BIN = libboinc.a
GPH_BIN = libboinc_graphics2.a
ZIP_BIN = libboinc_zip.a

OBJ = $(API_OBJ) $(LIB_OBJ) $(GPH_OBJ) $(ZIP_OBJ)
BIN = $(API_BIN) $(LIB_BIN) $(GPH_BIN) $(ZIP_BIN)


# -gstabs is necessary for MinGWs backtrace to work

DEBUG = -D__DEBUG__ -gstabs -g3


# where to find headers

INCS = -I"$(BOINC_SRC)" -I"$(BOINC_SRC)/db" -I"$(BOINC_SRC)/lib" 
-I"$(BOINC_SRC)/api" -I"$(BOINC_SRC)/zip" -I"$(BOINC_SRC)/win_build"


# various cpp & gcc flags (for both C and C++ mode)

CCXXFLAGS = $(INCS) $(DEBUG) --include $(BOINC_SRC)/version.h -DMINGW_WIN32 \
        -DWIN32 -D_WIN32 -D_WIN32_WINDOWS=0x0410 -D_MT -DNDEBUG -D_WINDOWS  
-DBOINC \
        -DNODB -D_CONSOLE -mtune=pentium-m -fexceptions -march=i386 -O2 
$(NOCYGWIN)


# flags for compiling boinc_zip

ZIP_FLAGS = -DWIN32 -DNDEBUG -D_LIB -D_MBCS -DNO_MKTEMP $(INCS) -O2 -DDLL 
$(NOCYGWIN)


LDFLAGS = -lwinmm -march=i386

CFLAGS = $(CCXXFLAGS)
CXXFLAGS = $(CCXXFLAGS)


# default target

all: $(BIN)


# rules for the indivisual libraries

$(API_BIN): $(API_OBJ)
        $(AR) rc $@ $^
$(LIB_BIN): $(LIB_OBJ)
        $(AR) rc $@ $^
$(GPH_BIN): $(GPH_OBJ)
        $(AR) rc $@ $^
$(ZIP_BIN): $(ZIP_OBJ)
        $(AR) rc $@ $^


# standard BOINC code - .C and .cpp versions

%.o: $(BOINC_SRC)/api/%.C
        $(CXX) -c $< -o $@ $(CPPFLAGS) $(CXXFLAGS)
%.o: $(BOINC_SRC)/lib/%.C
        $(CXX) -c $< -o $@ $(CPPFLAGS) $(CXXFLAGS)
%.o: $(BOINC_SRC)/api/%.cpp
        $(CXX) -c $< -o $@ $(CPPFLAGS) $(CXXFLAGS)
%.o: $(BOINC_SRC)/lib/%.cpp
        $(CXX) -c $< -o $@ $(CPPFLAGS) $(CXXFLAGS)


# C-mode file

md5.o: $(BOINC_SRC)/lib/md5.c
        $(CXX) -c $(BOINC_SRC)/lib/md5.c -o md5.o $(CPPFLAGS) $(CXXFLAGS)


# for boinc_zip. Don't change the order!

%.o: $(BOINC_SRC)/zip/%.cpp
        $(CXX) -c $< -o $@ $(ZIP_FLAGS)
%.o: $(BOINC_SRC)/zip/unzip/win32/%.c
        $(CC) -c $< -o $@ $(ZIP_FLAGS)
%.o: $(BOINC_SRC)/zip/unzip/%.c
        $(CC) -c $< -o $@ $(ZIP_FLAGS)
%.o: $(BOINC_SRC)/zip/zip/win32/%.c
        $(CC) -c $< -o $@ $(ZIP_FLAGS)
%.o: $(BOINC_SRC)/zip/zip/%.c
        $(CC) -c $< -o $@ $(ZIP_FLAGS)
z_util.o: $(BOINC_SRC)/zip/zip/util.c
        $(CC) -c $< -o $@ $(ZIP_FLAGS)

RANLIB ?= ranlib

# additional targets

install: $(BIN) $(HEADERS)
        mkdir -p $(BOINC_PREFIX)/include/BOINC $(BOINC_PREFIX)/lib
        cp $(HEADERS) $(BOINC_PREFIX)/include/BOINC
        $(RANLIB) $(BIN)
        cp $(BIN) $(BOINC_PREFIX)/lib

uninstall:
        rm -f $(BOINC_PREFIX)/include/BOINC/*.h
        ( cd $(BOINC_PREFIX)/lib && rm -f $(BIN) || exit 0 )

clean:
        ${RM} $(OBJ) $(BIN)
_______________________________________________
boinc_dev mailing list
[email protected]
http://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev
To unsubscribe, visit the above URL and
(near bottom of page) enter your email address.

Reply via email to