There is a growing demand to port existing PC-based software systems to mobile device platforms. Systems running on mobile devices share basic characteristics with their PC-based counterparts, but differ from them in details of user interfaces, application models, etc. Systems running on mobile devices must also perform well using less memory than PC-based systems. Mobile devices themselves are different from each other in many ways, too. In this paper, we describe how we made an existing PC-based City Guide System available on a wide range of mobile devices, in a cost-effective way. We applied “reengineering into a product line architecture” approach to achieve the goal. Our product line architecture facilitates reuse via generation – we generate specific City Guide Systems for target platforms including PC, Pocket PC and other mobile devices, from generic meta-components that form the City Guide System product line architecture. In our project, we used a metaprogramming techni...