Index: code/trunk/src/orxonox/objects/weaponsystem/CMakeLists.txt
===================================================================
--- code/trunk/src/orxonox/objects/weaponsystem/CMakeLists.txt	(revision 3325)
+++ code/trunk/src/orxonox/objects/weaponsystem/CMakeLists.txt	(revision 5693)
@@ -8,4 +8,7 @@
   WeaponSystem.cc
   DefaultWeaponmodeLink.cc
+)
+
+SET_SOURCE_FILES(WEAPONSYSTEM_SRC_FILES
   MuzzleFlash.cc
 )
@@ -14,2 +17,11 @@
 ADD_SUBDIRECTORY(projectiles)
 ADD_SUBDIRECTORY(weaponmodes)
+
+ORXONOX_ADD_LIBRARY(weaponsystem
+  MODULE
+  DEFINE_SYMBOL
+    "WEAPONSYSTEM_SHARED_BUILD"
+  LINK_LIBRARIES
+    orxonox
+  SOURCE_FILES ${WEAPONSYSTEM_SRC_FILES}
+)
Index: code/trunk/src/orxonox/objects/weaponsystem/MuzzleFlash.h
===================================================================
--- code/trunk/src/orxonox/objects/weaponsystem/MuzzleFlash.h	(revision 3325)
+++ code/trunk/src/orxonox/objects/weaponsystem/MuzzleFlash.h	(revision 5693)
@@ -30,5 +30,5 @@
 #define _MuzzleFlash_H__
 
-#include "OrxonoxPrereqs.h"
+#include "objects/weaponsystem/WeaponsystemPrereqs.h"
 
 #include "tools/Timer.h"
@@ -37,5 +37,5 @@
 namespace orxonox
 {
-    class _OrxonoxExport MuzzleFlash : public Billboard
+    class _WeaponsystemExport MuzzleFlash : public Billboard
     {
         public:
Index: code/trunk/src/orxonox/objects/weaponsystem/WeaponsystemPrereqs.h
===================================================================
--- code/trunk/src/orxonox/objects/weaponsystem/WeaponsystemPrereqs.h	(revision 5693)
+++ code/trunk/src/orxonox/objects/weaponsystem/WeaponsystemPrereqs.h	(revision 5693)
@@ -0,0 +1,84 @@
+/*
+ *   ORXONOX - the hottest 3D action shooter ever to exist
+ *                    > www.orxonox.net <
+ *
+ *
+ *   License notice:
+ *
+ *   This program is free software; you can redistribute it and/or
+ *   modify it under the terms of the GNU General Public License
+ *   as published by the Free Software Foundation; either version 2
+ *   of the License, or (at your option) any later version.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program; if not, write to the Free Software
+ *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ *
+ *   Author:
+ *      Reto Grieder
+ *   Co-authors:
+ *      ...
+ *
+ */
+
+/**
+  @file
+  @brief Contains all the necessary forward declarations for all classes and structs.
+*/
+
+#ifndef _WeaponsystemPrereqs_H__
+#define _WeaponsystemPrereqs_H__
+
+#include "OrxonoxConfig.h"
+
+#include "OrxonoxPrereqs.h"
+
+//-----------------------------------------------------------------------
+// Shared library settings
+//-----------------------------------------------------------------------
+#if defined(ORXONOX_PLATFORM_WINDOWS) && !defined(ORXONOX_STATIC_BUILD)
+#  ifdef WEAPONSYSTEM_SHARED_BUILD
+#    define _WeaponsystemExport __declspec(dllexport)
+#  else
+#    if defined( __MINGW32__ )
+#      define _WeaponsystemExport
+#    else
+#      define _WeaponsystemExport __declspec(dllimport)
+#    endif
+#  endif
+#elif defined ( ORXONOX_GCC_VISIBILITY )
+#  define _WeaponsystemExport  __attribute__ ((visibility("default")))
+#else
+#  define _WeaponsystemExport
+#endif
+
+//-----------------------------------------------------------------------
+// Forward declarations
+//-----------------------------------------------------------------------
+
+namespace orxonox
+{
+    class LaserFire;
+    class FusionFire;
+    class HsW01;
+    class LightningGun;
+    class EnergyDrink;
+
+    class Projectile;
+    class BillboardProjectile;
+    class ParticleProjectile;
+    class LightningGunProjectile;
+
+    class ReplenishingMunition;
+    class LaserMunition;
+    class FusionMunition;
+
+    class MuzzleFlash;
+}
+
+#endif /* _WeaponsystemPrereqs_H__ */
Index: code/trunk/src/orxonox/objects/weaponsystem/munitions/CMakeLists.txt
===================================================================
--- code/trunk/src/orxonox/objects/weaponsystem/munitions/CMakeLists.txt	(revision 3325)
+++ code/trunk/src/orxonox/objects/weaponsystem/munitions/CMakeLists.txt	(revision 5693)
@@ -1,3 +1,3 @@
-ADD_SOURCE_FILES(ORXONOX_SRC_FILES
+ADD_SOURCE_FILES(WEAPONSYSTEM_SRC_FILES
   ReplenishingMunition.cc
   LaserMunition.cc
Index: code/trunk/src/orxonox/objects/weaponsystem/munitions/FusionMunition.h
===================================================================
--- code/trunk/src/orxonox/objects/weaponsystem/munitions/FusionMunition.h	(revision 3325)
+++ code/trunk/src/orxonox/objects/weaponsystem/munitions/FusionMunition.h	(revision 5693)
@@ -30,10 +30,10 @@
 #define _FusionMunition_H__
 
-#include "OrxonoxPrereqs.h"
+#include "objects/weaponsystem/WeaponsystemPrereqs.h"
 #include "objects/weaponsystem/Munition.h"
 
 namespace orxonox
 {
-    class _OrxonoxExport FusionMunition : public Munition
+    class _WeaponsystemExport FusionMunition : public Munition
     {
         public:
Index: code/trunk/src/orxonox/objects/weaponsystem/munitions/LaserMunition.h
===================================================================
--- code/trunk/src/orxonox/objects/weaponsystem/munitions/LaserMunition.h	(revision 3325)
+++ code/trunk/src/orxonox/objects/weaponsystem/munitions/LaserMunition.h	(revision 5693)
@@ -30,10 +30,10 @@
 #define _LaserMunition_H__
 
-#include "OrxonoxPrereqs.h"
+#include "objects/weaponsystem/WeaponsystemPrereqs.h"
 #include "ReplenishingMunition.h"
 
 namespace orxonox
 {
-    class _OrxonoxExport LaserMunition : public ReplenishingMunition
+    class _WeaponsystemExport LaserMunition : public ReplenishingMunition
     {
         public:
Index: code/trunk/src/orxonox/objects/weaponsystem/munitions/ReplenishingMunition.h
===================================================================
--- code/trunk/src/orxonox/objects/weaponsystem/munitions/ReplenishingMunition.h	(revision 3325)
+++ code/trunk/src/orxonox/objects/weaponsystem/munitions/ReplenishingMunition.h	(revision 5693)
@@ -30,5 +30,5 @@
 #define _ReplenishingMunition_H__
 
-#include "OrxonoxPrereqs.h"
+#include "objects/weaponsystem/WeaponsystemPrereqs.h"
 
 #include "tools/Timer.h"
@@ -37,5 +37,5 @@
 namespace orxonox
 {
-    class _OrxonoxExport ReplenishingMunition : public Munition
+    class _WeaponsystemExport ReplenishingMunition : public Munition
     {
         public:
Index: code/trunk/src/orxonox/objects/weaponsystem/projectiles/BillboardProjectile.h
===================================================================
--- code/trunk/src/orxonox/objects/weaponsystem/projectiles/BillboardProjectile.h	(revision 3325)
+++ code/trunk/src/orxonox/objects/weaponsystem/projectiles/BillboardProjectile.h	(revision 5693)
@@ -30,5 +30,5 @@
 #define _BillboardProjectile_H__
 
-#include "OrxonoxPrereqs.h"
+#include "objects/weaponsystem/WeaponsystemPrereqs.h"
 
 #include "util/Math.h"
@@ -38,5 +38,5 @@
 namespace orxonox
 {
-    class _OrxonoxExport BillboardProjectile : public Projectile
+    class _WeaponsystemExport BillboardProjectile : public Projectile
     {
         public:
Index: code/trunk/src/orxonox/objects/weaponsystem/projectiles/CMakeLists.txt
===================================================================
--- code/trunk/src/orxonox/objects/weaponsystem/projectiles/CMakeLists.txt	(revision 3325)
+++ code/trunk/src/orxonox/objects/weaponsystem/projectiles/CMakeLists.txt	(revision 5693)
@@ -1,3 +1,3 @@
-ADD_SOURCE_FILES(ORXONOX_SRC_FILES
+ADD_SOURCE_FILES(WEAPONSYSTEM_SRC_FILES
   BillboardProjectile.cc
   ParticleProjectile.cc
Index: code/trunk/src/orxonox/objects/weaponsystem/projectiles/LightningGunProjectile.h
===================================================================
--- code/trunk/src/orxonox/objects/weaponsystem/projectiles/LightningGunProjectile.h	(revision 3325)
+++ code/trunk/src/orxonox/objects/weaponsystem/projectiles/LightningGunProjectile.h	(revision 5693)
@@ -30,5 +30,5 @@
 #define _LightningGunProjectile_H__
 
-#include "OrxonoxPrereqs.h"
+#include "objects/weaponsystem/WeaponsystemPrereqs.h"
 
 #include <string>
@@ -38,14 +38,14 @@
 namespace orxonox
 {
-    class _OrxonoxExport LightningGunProjectile : public BillboardProjectile
+    class _WeaponsystemExport LightningGunProjectile : public BillboardProjectile
     {
         public:
             LightningGunProjectile(BaseObject* creator);
             virtual ~LightningGunProjectile() {}
-            
+
             virtual void setMaterial(const std::string& material);
 
         protected:
-            void changeTexture();        
+            void changeTexture();
             unsigned int textureIndex_;
             unsigned int maxTextureIndex_;
Index: code/trunk/src/orxonox/objects/weaponsystem/projectiles/ParticleProjectile.h
===================================================================
--- code/trunk/src/orxonox/objects/weaponsystem/projectiles/ParticleProjectile.h	(revision 3325)
+++ code/trunk/src/orxonox/objects/weaponsystem/projectiles/ParticleProjectile.h	(revision 5693)
@@ -30,10 +30,10 @@
 #define _ParticleProjectile_H__
 
-#include "OrxonoxPrereqs.h"
+#include "objects/weaponsystem/WeaponsystemPrereqs.h"
 #include "BillboardProjectile.h"
 
 namespace orxonox
 {
-    class _OrxonoxExport ParticleProjectile : public BillboardProjectile
+    class _WeaponsystemExport ParticleProjectile : public BillboardProjectile
     {
         public:
Index: code/trunk/src/orxonox/objects/weaponsystem/projectiles/Projectile.h
===================================================================
--- code/trunk/src/orxonox/objects/weaponsystem/projectiles/Projectile.h	(revision 3325)
+++ code/trunk/src/orxonox/objects/weaponsystem/projectiles/Projectile.h	(revision 5693)
@@ -30,5 +30,5 @@
 #define _Projectile_H__
 
-#include "OrxonoxPrereqs.h"
+#include "objects/weaponsystem/WeaponsystemPrereqs.h"
 
 #include "tools/Timer.h"
@@ -38,5 +38,5 @@
 namespace orxonox
 {
-    class _OrxonoxExport Projectile : public MovableEntity, public PawnListener
+    class _WeaponsystemExport Projectile : public MovableEntity, public PawnListener
     {
         public:
Index: code/trunk/src/orxonox/objects/weaponsystem/weaponmodes/CMakeLists.txt
===================================================================
--- code/trunk/src/orxonox/objects/weaponsystem/weaponmodes/CMakeLists.txt	(revision 3325)
+++ code/trunk/src/orxonox/objects/weaponsystem/weaponmodes/CMakeLists.txt	(revision 5693)
@@ -1,3 +1,3 @@
-ADD_SOURCE_FILES(ORXONOX_SRC_FILES
+ADD_SOURCE_FILES(WEAPONSYSTEM_SRC_FILES
   EnergyDrink.cc
   FusionFire.cc
Index: code/trunk/src/orxonox/objects/weaponsystem/weaponmodes/EnergyDrink.h
===================================================================
--- code/trunk/src/orxonox/objects/weaponsystem/weaponmodes/EnergyDrink.h	(revision 3325)
+++ code/trunk/src/orxonox/objects/weaponsystem/weaponmodes/EnergyDrink.h	(revision 5693)
@@ -30,5 +30,5 @@
 #define _EnergyDrink_H__
 
-#include "OrxonoxPrereqs.h"
+#include "objects/weaponsystem/WeaponsystemPrereqs.h"
 
 #include <string>
@@ -38,5 +38,5 @@
 namespace orxonox
 {
-    class _OrxonoxExport EnergyDrink : public WeaponMode
+    class _WeaponsystemExport EnergyDrink : public WeaponMode
     {
         public:
Index: code/trunk/src/orxonox/objects/weaponsystem/weaponmodes/FusionFire.h
===================================================================
--- code/trunk/src/orxonox/objects/weaponsystem/weaponmodes/FusionFire.h	(revision 3325)
+++ code/trunk/src/orxonox/objects/weaponsystem/weaponmodes/FusionFire.h	(revision 5693)
@@ -30,10 +30,10 @@
 #define _FusionFire_H__
 
-#include "OrxonoxPrereqs.h"
+#include "objects/weaponsystem/WeaponsystemPrereqs.h"
 #include "objects/weaponsystem/WeaponMode.h"
 
 namespace orxonox
 {
-    class _OrxonoxExport FusionFire : public WeaponMode
+    class _WeaponsystemExport FusionFire : public WeaponMode
     {
         public:
Index: code/trunk/src/orxonox/objects/weaponsystem/weaponmodes/HsW01.h
===================================================================
--- code/trunk/src/orxonox/objects/weaponsystem/weaponmodes/HsW01.h	(revision 3325)
+++ code/trunk/src/orxonox/objects/weaponsystem/weaponmodes/HsW01.h	(revision 5693)
@@ -30,5 +30,5 @@
 #define _HsW01_H__
 
-#include "OrxonoxPrereqs.h"
+#include "objects/weaponsystem/WeaponsystemPrereqs.h"
 
 #include "tools/Timer.h"
@@ -37,5 +37,5 @@
 namespace orxonox
 {
-    class _OrxonoxExport HsW01 : public WeaponMode
+    class _WeaponsystemExport HsW01 : public WeaponMode
     {
         public:
Index: code/trunk/src/orxonox/objects/weaponsystem/weaponmodes/LaserFire.h
===================================================================
--- code/trunk/src/orxonox/objects/weaponsystem/weaponmodes/LaserFire.h	(revision 3325)
+++ code/trunk/src/orxonox/objects/weaponsystem/weaponmodes/LaserFire.h	(revision 5693)
@@ -30,10 +30,10 @@
 #define _LaserFire_H__
 
-#include "OrxonoxPrereqs.h"
+#include "objects/weaponsystem/WeaponsystemPrereqs.h"
 #include "objects/weaponsystem/WeaponMode.h"
 
 namespace orxonox
 {
-    class _OrxonoxExport LaserFire : public WeaponMode
+    class _WeaponsystemExport LaserFire : public WeaponMode
     {
         public:
Index: code/trunk/src/orxonox/objects/weaponsystem/weaponmodes/LightningGun.h
===================================================================
--- code/trunk/src/orxonox/objects/weaponsystem/weaponmodes/LightningGun.h	(revision 3325)
+++ code/trunk/src/orxonox/objects/weaponsystem/weaponmodes/LightningGun.h	(revision 5693)
@@ -30,10 +30,10 @@
 #define _LightningGun_H__
 
-#include "OrxonoxPrereqs.h"
+#include "objects/weaponsystem/WeaponsystemPrereqs.h"
 #include "objects/weaponsystem/WeaponMode.h"
 
 namespace orxonox
 {
-    class _OrxonoxExport LightningGun : public WeaponMode
+    class _WeaponsystemExport LightningGun : public WeaponMode
     {
         public:
