Change config.ce. The makefile will automatically generate new config.h. To generate a new Config.pm, delete config.h or touch config.ce. The socket stuff has been rewritten so fds from ceio are used. This makes it easy to use them as perl file handles. Socket and IO dlls compiled. Seem to work. The sequence for building a new target is: make -f Makefile.ce clean # clean up make -f Makefile.ce all # build for target CROSS_NAME macro is provided to name your current cross compilation. It is "wince" by default, but may be any other identifier to differentiate and co-exist miscellaneous configurations. So your command often will be make -f Makefile.ce all CROSS_NAME=[my-cross-name] It is implemented an easy way to build most of module extensions. First, you need to do nmake host-install CROSS_NAME=[my-cross-name] This command will install a set of files into your perl directory. That will allow you to do cross-compiling for your CE device. Those files are C libraries, h-files, Cross.pm, Config.pm. Note that it will use first found perl in your path. You should think about your PATH variable and change it at your will before copying such files. After that to do cross-compiling you need to invoke perl -MCross Makefile.PL or perl -MCross=[my-cross-name] Makefile.PL to prepare Makefile, and then nmake, nmake install, as usually you do. 'test' tartget is still not ready.