Fix the way libs are provided on the command line by putting them at the end
diff --git a/LibApplications/makefile.wm5 b/LibApplications/makefile.wm5
index 9e14150..7010409 100644
--- a/LibApplications/makefile.wm5
+++ b/LibApplications/makefile.wm5
@@ -1,62 +1,63 @@
-CFG ?= Debug
-
-CC := /usr/bin/g++
-CFLAGS := -c -D__LINUX__ -DWM5_USE_OPENGL
-
-ifeq (Debug,$(findstring Debug,$(CFG)))
-CFLAGS += -g -D_DEBUG
-else
-CFLAGS += -O2 -DNDEBUG
-endif
-
-LIBPATH := ../SDK/Library/$(CFG)
-
-ifeq (Dynamic,$(findstring Dynamic,$(CFG)))
-SOVER = 5
-RELVER = $(SOVER).17
-CFLAGS += -fPIC
-AR := $(CC)
-ARFLAGS := $(LDFLAGS) -L$(LIBPATH) -shared -fPIC -Wl,-soname,libWm5Applications.so.$(SOVER) -lWm5Core -lWm5Mathematics -lWm5Imagics -lWm5Graphics -lWm5Physics -o
-LIB := $(LIBPATH)/libWm5Applications.so.$(RELVER)
-else
-AR := /usr/bin/ar
-ARFLAGS := rs
-LIB := $(LIBPATH)/libWm5Applications.a
-endif
-
-INCPATH := -I . -I ../SDK/Include -I /usr/include
-INCDIR := ../SDK/Include
-INC := Wm5ApplicationPCH.h \
-       Wm5Application.h \
-       Wm5Command.h \
-       Wm5ConsoleApplication.h \
-       Wm5WindowApplication.h \
-       Wm5WindowApplication.inl \
-       Wm5WindowApplication2.h \
-       Wm5WindowApplication3.h
-SRC := Wm5Application.cpp \
-       Wm5Command.cpp \
-       Wm5ConsoleApplication.cpp \
-       Wm5WindowApplication.cpp \
-       Wm5WindowApplication2.cpp \
-       Wm5WindowApplication3.cpp
-OBJDIR := $(CFG)
-OBJ := $(SRC:%.cpp=$(OBJDIR)/%.o)
-
-build : $(OBJ) $(OBJDIR)/Wm5GlxApplication.o
-	$(AR) $(ARFLAGS) $(LIB) $(OBJ) $(OBJDIR)/Wm5GlxApplication.o
-	cp -fp $(INC) $(INCDIR) 
-	ln -sf -T libWm5Applications.so.$(RELVER) ../SDK/Library/$(OBJDIR)/libWm5Applications.so
-	ln -sf -T libWm5Applications.so.$(RELVER) ../SDK/Library/$(OBJDIR)/libWm5Applications.so.$(SOVER)
-
-$(OBJDIR)/Wm5GlxApplication.o : GlxApplication/Wm5GlxApplication.cpp
-	@mkdir -p $(OBJDIR)
-	$(CC) $(INCPATH) $(CFLAGS) $< -o $@
-
-$(OBJDIR)/%.o : %.cpp
-	@mkdir -p $(OBJDIR)
-	$(CC) $(INCPATH) $(CFLAGS) $< -o $@
-
-clean :
-	rm -rf $(LIB)
-	rm -rf $(OBJDIR)
+CFG ?= Debug
+
+CC := /usr/bin/g++
+CFLAGS := -c -D__LINUX__ -DWM5_USE_OPENGL
+
+ifeq (Debug,$(findstring Debug,$(CFG)))
+CFLAGS += -g -D_DEBUG
+else
+CFLAGS += -O2 -DNDEBUG
+endif
+
+LIBPATH := ../SDK/Library/$(CFG)
+
+ifeq (Dynamic,$(findstring Dynamic,$(CFG)))
+SOVER = 5
+RELVER = $(SOVER).17
+CFLAGS += -fPIC
+AR := $(CC)
+ARFLAGS := $(LDFLAGS) -L$(LIBPATH) -shared -fPIC -Wl,-soname,libWm5Applications.so.$(SOVER) -o
+LIBS := -lWm5Core -lWm5Mathematics -lWm5Imagics -lWm5Graphics -lWm5Physics -lX11
+LIB := $(LIBPATH)/libWm5Applications.so.$(RELVER)
+else
+AR := /usr/bin/ar
+ARFLAGS := rs
+LIB := $(LIBPATH)/libWm5Applications.a
+endif
+
+INCPATH := -I . -I ../SDK/Include -I /usr/include
+INCDIR := ../SDK/Include
+INC := Wm5ApplicationPCH.h \
+       Wm5Application.h \
+       Wm5Command.h \
+       Wm5ConsoleApplication.h \
+       Wm5WindowApplication.h \
+       Wm5WindowApplication.inl \
+       Wm5WindowApplication2.h \
+       Wm5WindowApplication3.h
+SRC := Wm5Application.cpp \
+       Wm5Command.cpp \
+       Wm5ConsoleApplication.cpp \
+       Wm5WindowApplication.cpp \
+       Wm5WindowApplication2.cpp \
+       Wm5WindowApplication3.cpp
+OBJDIR := $(CFG)
+OBJ := $(SRC:%.cpp=$(OBJDIR)/%.o)
+
+build : $(OBJ) $(OBJDIR)/Wm5GlxApplication.o
+	$(AR) $(ARFLAGS) $(LIB) $(OBJ) $(OBJDIR)/Wm5GlxApplication.o $(LIBS)
+	cp -fp $(INC) $(INCDIR) 
+	ln -sf -T libWm5Applications.so.$(RELVER) ../SDK/Library/$(OBJDIR)/libWm5Applications.so
+	ln -sf -T libWm5Applications.so.$(RELVER) ../SDK/Library/$(OBJDIR)/libWm5Applications.so.$(SOVER)
+
+$(OBJDIR)/Wm5GlxApplication.o : GlxApplication/Wm5GlxApplication.cpp
+	@mkdir -p $(OBJDIR)
+	$(CC) $(INCPATH) $(CFLAGS) $< -o $@
+
+$(OBJDIR)/%.o : %.cpp
+	@mkdir -p $(OBJDIR)
+	$(CC) $(INCPATH) $(CFLAGS) $< -o $@
+
+clean :
+	rm -rf $(LIB)
+	rm -rf $(OBJDIR)
diff --git a/LibCore/makeprj.wm5 b/LibCore/makeprj.wm5
index 81332d5..0312b9f 100644
--- a/LibCore/makeprj.wm5
+++ b/LibCore/makeprj.wm5
@@ -14,7 +14,7 @@ SOVER = 5
 RELVER = $(SOVER).17
 CFLAGS += -fPIC
 AR := $(CC)
-ARFLAGS := $(LDFLAGS) -shared -fPIC -Wl,-soname,libWm5Core.so.$(SOVER) -o
+ARFLAGS := $(LDFLAGS) -shared -fPIC -Wl,-soname,libWm5Core.so.$(SOVER) -pthread -o
 LIB := ../../SDK/Library/$(CFG)/libWm5Core.so.$(RELVER)
 else
 AR := /usr/bin/ar
diff --git a/LibGraphics/Renderers/GlxRenderer/makerend.wm5 b/LibGraphics/Renderers/GlxRenderer/makerend.wm5
index 768ed36..7f35b62 100644
--- a/LibGraphics/Renderers/GlxRenderer/makerend.wm5
+++ b/LibGraphics/Renderers/GlxRenderer/makerend.wm5
@@ -16,7 +16,8 @@ SOVER = 5
 RELVER = $(SOVER).17
 CFLAGS += -fPIC
 AR := $(CC)
-ARFLAGS := $(LDFLAGS) -L $(LIBPATH) -shared -fPIC -Wl,-soname,libWm5Graphics.so.$(SOVER) -lWm5Core -lWm5Mathematics -o
+ARFLAGS := $(LDFLAGS) -L $(LIBPATH) -shared -fPIC -Wl,-soname,libWm5Graphics.so.$(SOVER) -o
+LIBS := -lWm5Core -lWm5Mathematics -lGL
 LIB := $(LIBPATH)/libWm5Graphics.so.$(RELVER)
 else
 AR := /usr/bin/ar
@@ -56,7 +57,7 @@ OGLOBJ := $(OGLSRC:%.cpp=$(OBJDIR)/%.o)
 OBJ := $(RENOBJ) $(OGLOBJ) $(GLXOBJ)
 
 build : $(OBJ)
-	$(AR) $(ARFLAGS) $(LIB) $(OBJDIR)/*.o
+	$(AR) $(ARFLAGS) $(LIB) $(OBJDIR)/*.o $(LIBS)
 	cp -fp $(INC) $(INCDIR)
 
 $(OBJDIR)/Wm5Renderer.o : ../Wm5Renderer.cpp
diff --git a/LibGraphics/makeprj.wm5 b/LibGraphics/makeprj.wm5
index 580aefe..1651aad 100644
--- a/LibGraphics/makeprj.wm5
+++ b/LibGraphics/makeprj.wm5
@@ -16,7 +16,8 @@ SOVER = 5
 RELVER = $(SOVER).17
 CFLAGS += -fPIC
 AR := $(CC)
-ARFLAGS := $(LDFLAGS) -L $(LIBPATH) -shared -fPIC -Wl,-soname,libWm5Graphics.so.$(SOVER) -lWm5Core -lWm5Mathematics -o
+ARFLAGS := $(LDFLAGS) -L $(LIBPATH) -shared -fPIC -Wl,-soname,libWm5Graphics.so.$(SOVER) -o
+LIBS := -lWm5Core -lWm5Mathematics -lGL
 LIB := $(LIBPATH)/libWm5Graphics.so.$(RELVER)
 else
 AR := /usr/bin/ar
@@ -50,7 +51,7 @@ OBJDIR := ../$(CFG)
 OBJ := $(SRC:%.cpp=$(OBJDIR)/%.o)
 
 build : $(OBJ)
-	$(AR) $(ARFLAGS) $(LIB) $(OBJDIR)/*.o
+	$(AR) $(ARFLAGS) $(LIB) $(OBJDIR)/*.o $(LIBS)
 	cp -fp $(INC) $(INCDIR)
 
 $(OBJDIR)/%.o : %.cpp
diff --git a/LibImagics/makeprj.wm5 b/LibImagics/makeprj.wm5
index 263b608..927f378 100644
--- a/LibImagics/makeprj.wm5
+++ b/LibImagics/makeprj.wm5
@@ -16,7 +16,8 @@ SOVER = 5
 RELVER = $(SOVER).17
 CFLAGS += -fPIC
 AR := $(CC)
-ARFLAGS := $(LDFLAGS) -L $(LIBPATH) -shared -fPIC -Wl,-soname,libWm5Imagics.so.$(SOVER) -lWm5Core -lWm5Mathematics -o
+ARFLAGS := $(LDFLAGS) -L $(LIBPATH) -shared -fPIC -Wl,-soname,libWm5Imagics.so.$(SOVER) -o
+LIBS := -lWm5Core -lWm5Mathematics
 LIB := $(LIBPATH)/libWm5Imagics.so.$(RELVER)
 else
 AR := /usr/bin/ar
@@ -42,7 +43,7 @@ OBJDIR := ../$(CFG)
 OBJ := $(SRC:%.cpp=$(OBJDIR)/%.o)
 
 build : $(OBJ)
-	$(AR) $(ARFLAGS) $(LIB) $(OBJDIR)/*.o
+	$(AR) $(ARFLAGS) $(LIB) $(OBJDIR)/*.o $(LIBS)
 	cp -fp $(INC) $(INCDIR)
 
 $(OBJDIR)/%.o : %.cpp
diff --git a/LibMathematics/makeprj.wm5 b/LibMathematics/makeprj.wm5
index 70be1f1..27d2b6d 100644
--- a/LibMathematics/makeprj.wm5
+++ b/LibMathematics/makeprj.wm5
@@ -16,7 +16,8 @@ SOVER = 5
 RELVER = $(SOVER).17
 CFLAGS += -fPIC
 AR := $(CC)
-ARFLAGS := $(LDFLAGS) -L $(LIBPATH) -shared -fPIC -Wl,-soname,libWm5Mathematics.so.$(SOVER) -lWm5Core -o
+ARFLAGS := $(LDFLAGS) -L $(LIBPATH) -shared -fPIC -Wl,-soname,libWm5Mathematics.so.$(SOVER) -o
+LIBS := -lWm5Core
 LIB := $(LIBPATH)/libWm5Mathematics.so.$(RELVER)
 else
 AR := /usr/bin/ar
@@ -52,7 +53,7 @@ OBJDIR := ../$(CFG)
 OBJ := $(SRC:%.cpp=$(OBJDIR)/%.o)
 
 build : $(OBJ)
-	$(AR) $(ARFLAGS) $(LIB) $(OBJDIR)/*.o
+	$(AR) $(ARFLAGS) $(LIB) $(OBJDIR)/*.o $(LIBS)
 	cp -fp $(INC) $(INCDIR)
 
 $(OBJDIR)/%.o : %.cpp
diff --git a/LibPhysics/makeprj.wm5 b/LibPhysics/makeprj.wm5
index c42b8aa..189b260 100644
--- a/LibPhysics/makeprj.wm5
+++ b/LibPhysics/makeprj.wm5
@@ -16,7 +16,8 @@ SOVER = 5
 RELVER = $(SOVER).17
 CFLAGS += -fPIC
 AR := $(CC)
-ARFLAGS := $(LDFLAGS) -L $(LIBPATH) -shared -fPIC -Wl,-soname,libWm5Physics.so.$(SOVER) -lWm5Core -lWm5Mathematics -o
+ARFLAGS := $(LDFLAGS) -L $(LIBPATH) -shared -fPIC -Wl,-soname,libWm5Physics.so.$(SOVER) -o
+LIBS := -lWm5Core -lWm5Mathematics
 LIB := $(LIBPATH)/libWm5Physics.so.$(RELVER)
 else
 AR := /usr/bin/ar
@@ -42,7 +43,7 @@ OBJDIR := ../$(CFG)
 OBJ := $(SRC:%.cpp=$(OBJDIR)/%.o)
 
 build : $(OBJ)
-	$(AR) $(ARFLAGS) $(LIB) $(OBJDIR)/*.o
+	$(AR) $(ARFLAGS) $(LIB) $(OBJDIR)/*.o $(LIBS)
 	cp -fp $(INC) $(INCDIR)
 
 $(OBJDIR)/%.o : %.cpp
