Opened 10 years ago

Closed 10 years ago

Last modified 13 months ago

#9060 closed patch

WINCE: Integrate Windows CE with the master build system

Reported by: CeRiAl Owned by: SF/knakos
Priority: normal Component: Port: WinCE
Keywords: Cc:
Game:

Description

This patch adds basic buildbot support for Windows CE (mingw32ce 0.5.1 toolchain),
as well as some syntax-fixes and addition of perror() to missing.cpp (needed for sci-engine).

Ticket imported from: #2828646. Ticket imported from: patches/1165.

Attachments (3)

wince-diff.patch (5.1 KB ) - added by CeRiAl 10 years ago.
SVN Diff
20090730-trunk.patch (4.5 KB ) - added by CeRiAl 10 years ago.
New SVN Diff (2009-07-30 22:46)
20090801-trunk.patch (4.5 KB ) - added by CeRiAl 10 years ago.
New SVN Diff (2009-08-01 13:00)

Download all attachments as: .zip

Change History (14)

by CeRiAl, 10 years ago

Attachment: wince-diff.patch added

SVN Diff

comment:1 by CeRiAl, 10 years ago

Owner: set to SF/knakos

comment:2 by fingolfin, 10 years ago

Using perror() in an engine simply was a bug -- I fixed the SCI engine to not use perror, so this part of the patch shouldn't be necessary anymore.

Several of the changes made to wince.mk look to me as if they should really be in a common/shared .mk file (e.g. ports.mk or Makefile.common) -- at least those which check USE_ARM_GFX_ASM and then set -DUSE_ARM_GFX_ASM -- because basically *every* port using USE_ARM_GFX_ASM requires this, I think... So, it makes sense in my eyes to get rid of the various -DUSE_ARM_GFX_ASM found in configure, and instead put
ifdef USE_ARM_GFX_ASM
DEFINES += -DUSE_ARM_GFX_ASM
endif
into Makefile.common. Hmmm... or into a new not-yet existing .mk file... /me scratches his head...

Conversely, though, it seems weird that the build rule for backends/platform/wince/PocketSCUMM.o is put into ports.mk -- *this* rule seems to naturally belong into backends/platform/wince/wince :)

comment:3 by fingolfin, 10 years ago

Summary: Basic buildbot support and fixes for Windows CEWINCE: Integrate Windows CE with the master build system

comment:4 by SF/knakos, 10 years ago

perror: Yes, it won't be needed.
ARM defines: They should be safe for all arm ports. Makefile.common is not too bad an option I guess. Except if you can think of a common .mk where special defines are generated for all platforms.
Your preference.

comment:5 by fingolfin, 10 years ago

I guess I'd put them into ports.mk in a section labeled
#
# ARM specific
#

But of course this is not ideal. Well, the whole ports.mk is not ideal... Let's just put it there to get this into SVN, we can worry about the "perfect" place for it later on.

Mind you: That's for the USE_ARM_* flags only! For the other checks that this patch wants to add to wince.mk... hm... For most of them I don't see why they are there. If those libs are installed correctly and CXX / CXXFLAGS / LDFLAGS are set appropriately, then the configure script should pick up those libs automatically. Even for cross compilers. If possible, I'd prefer that by a wide margin over manually adding them to the build system, as it's more flexible (and also makes it a lot easier to maintain the buildbot. Or to make custom builds with, say, FLAC disabled).

So, that should be changed. That would also make it necessary to again remove these lines from configure:
add_line_to_config_mk 'USE_MAD = 1'
add_line_to_config_mk 'USE_MPEG2 = 1'
add_line_to_config_mk 'USE_FLAC = 1'
add_line_to_config_mk 'USE_ZLIB = 1'

The possible exception for all this is USE_TREMOLO ... though I wonder if maybe other ports could benefit from tremolo, and if hence it should be properly added to the configure script... ?

comment:6 by CeRiAl, 10 years ago

Yes, these defines have to be removed from both places (not the USE_ARM_* ones).
They are there due to the fact that the build process still relies on the fact that the libs are installed in the sourcedirs... (I've just realized this about 2hrs ago). I've already changed my local trunk and removed those defines from the configure-script and also from the wince.mk (only tremolo and arm related defines left in there). I'm still testing the build process (with the libs and includes at right place and sans superfluous defines in configure script and wince.mk). It's still building, as soon as it's done I will post the new patches for the configure-script and the wince related files.

Oh, and yeah, I think tremolo could be useful also for other ARM based systems, so it would make sense to put this define beside the ARM ones (wherever this place will be)

by CeRiAl, 10 years ago

Attachment: 20090730-trunk.patch added

New SVN Diff (2009-07-30 22:46)

comment:7 by CeRiAl, 10 years ago

Ok, I've cleaned everything up a little and attached a new patch (20090730-trunk.patch)
I think everything should be correct now.

by CeRiAl, 10 years ago

Attachment: 20090801-trunk.patch added

New SVN Diff (2009-08-01 13:00)

comment:8 by CeRiAl, 10 years ago

Again uploaded a new version of the patch, it adds an "mkdir" line to the wince.mk makefile to create the target directory for PocketSCUMM.o (it failed to build after "make clean" because of the missing directory).

comment:9 by SF/knakos, 10 years ago

Status: newclosed

comment:10 by SF/knakos, 10 years ago

committed in r43041. Thank you.

comment:11 by digitall, 13 months ago

Component: Port: WinCE
Note: See TracTickets for help on using tickets.