diff --git a/Makefile b/Makefile
index cb32e5ff78cb2bfcea5a087424743e951b574fb2..892e715c9f55e9bdba0067845f055c6f402015ed 100644
--- a/Makefile
+++ b/Makefile
@@ -1,15 +1,36 @@
-TOPDIR = /usr/lyskom/src
+TOPDIR = /usr/lyskom
 SCRIPTDIR = $(TOPDIR)/scripts
 
 include $(SCRIPTDIR)/import.make
 
-SUBDIRS = doc include junk lib scripts src
+SUBDIRS = doc junk scripts src
 
-all:
+all: includes libraries binaries
+
+includes:
+	-mkdir $(INCLUDEDIR)
+	for i in $(SUBDIRS) ;	\
+	do	\
+		echo making includes in directory $$i; \
+		(cd $$i; $(MAKE) $(EXPORTS) includes)	\
+	done
+
+
+libraries:
+	-$(RM) -r $(LIBDIR)
+	mkdir $(LIBDIR)
 	for i in $(SUBDIRS) ;	\
 	do	\
-		echo making all in directory $$i; \
-		(cd $$i; $(MAKE) $(EXPORTS) all)	\
+		echo making libraries in directory $$i; \
+		(cd $$i; $(MAKE) $(EXPORTS) libraries)	\
+	done
+
+
+binaries:
+	for i in $(SUBDIRS) ;	\
+	do	\
+		echo making binaries in directory $$i; \
+		(cd $$i; $(MAKE) $(EXPORTS) binaries)	\
 	done
 
 
@@ -20,9 +41,8 @@ install:
 		(cd $$i; $(MAKE) $(EXPORTS) install)	\
 	done
 
-depend:
-	(cd src/include; make $(EXPORTS) install)
-	(cd src/libraries; make $(EXPORTS) install-headers)
+
+depend: includes
 	for i in $(SUBDIRS) ;	\
 	do	\
 		echo making depend in directory $$i; \
diff --git a/doc/Makefile b/doc/Makefile
index 409730bf9032283d6326c1102d57c2e7babaa880..78a834ae40685c0a856b3ecf244c7fe3d5998c7f 100644
--- a/doc/Makefile
+++ b/doc/Makefile
@@ -1,4 +1,4 @@
-TOPDIR = /usr/lyskom/src
+TOPDIR = /usr/lyskom
 SCRIPTDIR = $(TOPDIR)/scripts
 
 include $(SCRIPTDIR)/import.make
@@ -7,6 +7,9 @@ SUBDIRS = man
 
 all:;
 depend:;
+includes:;
+libraries:;
+binaries:;
 
 clean:
 	$(RM) *~ core
diff --git a/scripts/Makefile b/scripts/Makefile
index da83a03a3f4b80b4ba779d1695e55b84f17743d6..a2a2933e9f57f2d4a2f538cd7704e758162f391d 100644
--- a/scripts/Makefile
+++ b/scripts/Makefile
@@ -1,6 +1,9 @@
 all:;
 depend:;
 install:;
+includes:;
+libraries:;
+binaries:;
 	
 
 clean:
diff --git a/scripts/Parallell-depend.make b/scripts/Parallell-depend.make
index 7adcc765af16998cdb0a275d02eedefa5c19b16a..7d985218622f23be3832755d2f1957b0f8a260fe 100644
--- a/scripts/Parallell-depend.make
+++ b/scripts/Parallell-depend.make
@@ -1,7 +1,5 @@
-# temp-B-Makefile temp-C-Makefile \
-#		temp-D-Makefile temp-E-Makefile
-
-depend: temp-A-Makefile
+depend: temp-A-Makefile temp-B-Makefile temp-C-Makefile \
+		temp-D-Makefile temp-E-Makefile
 	rm -f dependencies
 	cat temp-?-Makefile >dependencies
 	rm temp-?-Makefile temp-?-files
diff --git a/src/Makefile b/src/Makefile
index 3d83386f760b5e96de11224f8b557eb508652b1a..850c5a965b4d6ed6cac6c976e45b01feead3a1f8 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -4,16 +4,33 @@ SCRIPTDIR = $(TOPDIR)/scripts
 include $(SCRIPTDIR)/import.make
 
 # All directories that make should traverse to when doing clean etc.
-# Note htat libraries MUST be made before the rest. Otherwise you will
-# be linking with old versions...
 
 SUBDIRS = include libraries server komutils clients
 
-all:
+all: includes libraries binaries
+
+includes:
+	for i in $(SUBDIRS) ;	\
+	do	\
+		echo making includes in directory $$i; \
+		(cd $$i; $(MAKE) $(EXPORTS) includes)	\
+	done
+
+
+.PHONY: libraries
+libraries:
+	for i in $(SUBDIRS) ;	\
+	do	\
+		echo making libraries in directory $$i; \
+		(cd $$i; $(MAKE) $(EXPORTS) libraries)	\
+	done
+
+
+binaries:
 	for i in $(SUBDIRS) ;	\
 	do	\
-		echo making all in directory $$i; \
-		(cd $$i; $(MAKE) $(EXPORTS) all)	\
+		echo making binaries in directory $$i; \
+		(cd $$i; $(MAKE) $(EXPORTS) binaries)	\
 	done
 
 
diff --git a/src/include/Makefile b/src/include/Makefile
index 9fd49b9da1d56107745a3892993c5e913bf6e77b..87a2e431b7dd534f3cc778d03cc2230fcf767613 100644
--- a/src/include/Makefile
+++ b/src/include/Makefile
@@ -9,23 +9,22 @@ SUBDIRS = ansi server
 
 INSTALL-HDRS = $(wildcard *.h)
 
-all:
-	for i in $(SUBDIRS); \
-	do	\
-		echo making all in directory $$i; \
-		(cd $$i; $(MAKE) $(EXPORTS) all); \
-	done
+all: includes libraries binaries
 
+libraries:;
+binaries:;
 
 
-.PHONY : install
-install:
-	(cd $(INCLUDEDIR); $(RM) $(INSTALL-HDRS))
-	cp $(INSTALL-HDRS) $(INCLUDEDIR)/
+.PHONY : includes
+includes:
+	for i in $(INSTALL-HDRS);\
+	do	\
+		cmp $$i $(INCLUDEDIR)/$$i || cp $$i $(INCLUDEDIR)/$$i; \
+	done
 	for i in $(SUBDIRS); \
 	do	\
-		echo making install in directory $$i; \
-		(cd $$i; $(MAKE) $(EXPORTS) install); \
+		echo making includes in directory $$i; \
+		(cd $$i; $(MAKE) $(EXPORTS) includes); \
 	done
 
 clean:
diff --git a/src/include/server/Makefile b/src/include/server/Makefile
index bbdceab7dd5ea26ad13954fdef633a7b107f05c6..233a113fc5ba87d5fe6e0b9438b4c5a1c777282f 100644
--- a/src/include/server/Makefile
+++ b/src/include/server/Makefile
@@ -7,14 +7,19 @@ TARGET = -DCLIENT
 
 INSTALL-HDRS = smalloc.h
 
-all:;
+all: includes libraries binaries
 
+libraries:;
+binaries:;
 
-.PHONY : install
+.PHONY : includes
 install:
 	-mkdir $(INCLUDEDIR)/server
-	(cd $(INCLUDEDIR)/server; $(RM) $(INSTALL-HDRS))
-	cp $(INSTALL-HDRS) $(INCLUDEDIR)/server/
+	for i in $(INSTALL-HDRS);\
+	do	\
+		cmp $$i $(INCLUDEDIR)/server/$$i	\
+		|| cp $$i $(INCLUDEDIR)/server/$$i; \
+	done
 
 clean:
 	rm -vf ${OBJECTS} *~ core temp-Makefile Distfile *.o
diff --git a/src/libraries/Makefile b/src/libraries/Makefile
index 404bb006a9c0aaad4c0effccbe96ca28a6ccab3f..ecfd9208eb8f52846ec40307afd13ad100ca756a 100644
--- a/src/libraries/Makefile
+++ b/src/libraries/Makefile
@@ -8,14 +8,28 @@ include $(SCRIPTDIR)/import.make
 
 SUBDIRS = libansi libmisc libisc libcommon client-support
 
-all:
+all: includes libraries binaries
+
+
+includes:
+	for i in $(SUBDIRS) ;	\
+	do	\
+		echo making includes in directory $$i; \
+		(cd $$i; $(MAKE) $(EXPORTS) includes)	\
+	done
+
+
+libraries:
 	for i in $(SUBDIRS) ;	\
 	do	\
-		echo making all in directory $$i; \
-		(cd $$i; $(MAKE) $(EXPORTS) all)	\
+		echo making libraries in directory $$i; \
+		(cd $$i; $(MAKE) $(EXPORTS) libraries)	\
 	done
 
 
+binaries:;
+
+
 depend:
 	for i in $(SUBDIRS) ;	\
 	do	\
@@ -32,14 +46,6 @@ install:
 	done
 
 
-install-headers:
-	for i in $(SUBDIRS) ;	\
-	do	\
-		echo making install-headers in directory $$i; \
-		(cd $$i; $(MAKE) $(EXPORTS) install-headers)	\
-	done
-
-
 clean:
 	rm -vf *~ core
 	for i in $(SUBDIRS); \
diff --git a/src/libraries/libansi/Makefile b/src/libraries/libansi/Makefile
index ffa1902418918af936014ece90d625de93be7efb..6b4cea90163023774a8ba2c619cb3d0042e34435 100644
--- a/src/libraries/libansi/Makefile
+++ b/src/libraries/libansi/Makefile
@@ -16,13 +16,14 @@ libmisc.a: $(LIBOBJS)
 	ar qc $(LIBNAME) $(LIBOBJS)
 	ranlib $(LIBNAME)
 
-install-headers:;
+includes:;
 
-install: $(LIBNAME)
+libraries: $(LIBNAME)
 	$(RM) $(LIBDIR)/$(LIBNAME)
 	cp $(LIBNAME) $(LIBDIR)/$(LIBNAME)
 	ranlib $(LIBDIR)/$(LIBNAME)
 
+binaries:;
 
 clean:
 	rm -vf ${LIBOBJS} *~ core temp-Makefile Distfile *.o
diff --git a/src/libraries/libcommon/Makefile b/src/libraries/libcommon/Makefile
index 89e25a79a128e3845bdf4b586cfa6cf44d8beb4b..b859ee5baefbbf39f65092a7716fd48a9654afec 100644
--- a/src/libraries/libcommon/Makefile
+++ b/src/libraries/libcommon/Makefile
@@ -44,15 +44,20 @@ liblyskom-client.a: client-dir
 clean:
 	$(RM) -r *.o core Distfile *~ client-dir server-dir $(LIBRARIES)
 
-install: all install-headers
+libraries: includes all 
 	(cd $(LIBDIR); $(RM)  $(LIBRARIES))
 	cp $(LIBRARIES) $(LIBDIR)
 	(cd $(LIBDIR); ranlib -t $(LIBRARIES))
 
-.PHONY: install-headers
-install-headers:
-	(cd $(INCLUDEDIR); $(RM) $(HDRS))
-	cp $(HDRS) $(INCLUDEDIR)
+.PHONY: includes
+includes:
+	for i in $(HDRS);\
+	do	\
+		cmp $$i $(INCLUDEDIR)/$$i || cp $$i $(INCLUDEDIR)/$$i; \
+	done
+
+
+binaries:;
 
 tags:
 	etags -t $(INCLUDEDIR)/*.h *.[hc]	
diff --git a/src/libraries/libcommon/dependencies b/src/libraries/libcommon/dependencies
index a88cc83be419c0c8c24983011a73bb0c9f1065db..dc0646a6b97eb0f0764249f99e0803fa8e63abcd 100644
--- a/src/libraries/libcommon/dependencies
+++ b/src/libraries/libcommon/dependencies
@@ -1,6 +1,26 @@
-kom-errno.o : kom-errno.c /users/ceder/gurka/lyskom/include/ansi/stdio.h \
-  /users/ceder/gurka/lyskom/include/config.h \
-  /users/ceder/gurka/lyskom/include/kom-errno.h \
-  /usr/gnu/lib/gcc-include/sys/types.h /usr/include/sys/types.h \
+kom-errno.o : kom-errno.c /users/ceder/lyskom/include/ansi/stdio.h \
+  /users/ceder/lyskom/include/config.h \
+  /users/ceder/lyskom/include/kom-errno.h \
+  /users/ceder/lyskom/include/ansi/sys/types.h /usr/include/sys/types.h \
   /usr/gnu/lib/gcc-include/sys/stdtypes.h /usr/include/sys/stdtypes.h \
   /usr/include/sys/sysmacros.h 
+misc-parser.o : misc-parser.c misc-parser.h \
+  /users/ceder/lyskom/include/kom-types.h \
+  /users/ceder/lyskom/include/ansi/sys/types.h /usr/include/sys/types.h \
+  /usr/gnu/lib/gcc-include/sys/stdtypes.h /usr/include/sys/stdtypes.h \
+  /usr/include/sys/sysmacros.h /usr/gnu/lib/gcc-include/limits.h \
+  /users/ceder/lyskom/include/ansi/time.h /usr/include/time.h \
+  /users/ceder/lyskom/include/s-string.h \
+  /users/ceder/lyskom/include/ansi/stdio.h \
+  /users/ceder/lyskom/include/ansi/stddef.h \
+  /users/ceder/lyskom/include/misc-types.h \
+  /users/ceder/lyskom/include/s-collat-tabs.h 
+parser.o : parser.c /users/ceder/lyskom/include/ansi/stddef.h \
+  /users/ceder/lyskom/include/ansi/sys/types.h /usr/include/sys/types.h \
+  /usr/gnu/lib/gcc-include/sys/stdtypes.h /usr/include/sys/stdtypes.h \
+  /usr/include/sys/sysmacros.h /users/ceder/lyskom/include/s-string.h \
+  /usr/gnu/lib/gcc-include/limits.h /users/ceder/lyskom/include/ansi/stdio.h \
+  /users/ceder/lyskom/include/misc-types.h \
+  /users/ceder/lyskom/include/s-collat-tabs.h parser.h \
+  /users/ceder/lyskom/include/zmalloc.h \
+  /users/ceder/lyskom/include/compiler.h 
diff --git a/src/libraries/libmisc/Makefile b/src/libraries/libmisc/Makefile
index 212121f2085aa413ed0c22fd5657533100d6ffb1..ed18a2d1f435692495b12715990b48058372b298 100644
--- a/src/libraries/libmisc/Makefile
+++ b/src/libraries/libmisc/Makefile
@@ -32,14 +32,18 @@ $(LIBNAME): $(LIBOBJS)
 	ar r $(LIBNAME) $?
 	ranlib $(LIBNAME)
 
-install: $(LIBNAME) install-headers
+libraries: $(LIBNAME)
 	$(RM) $(LIBDIR)/$(LIBNAME)
 	cp $(LIBNAME) $(LIBDIR)/$(LIBNAME)
 	ranlib -t $(LIBDIR)/$(LIBNAME)
 
-install-headers:
-	(cd $(INCLUDEDIR); $(RM) $(INSTALL-HDRS))
-	cp $(INSTALL-HDRS) $(INCLUDEDIR)/
+includes:
+	for i in $(INSTALL-HDRS);\
+	do	\
+		cmp $$i $(INCLUDEDIR)/$$i || cp $$i $(INCLUDEDIR)/$$i; \
+	done
+
+binaries:;
 
 testnumlist: testnumlist.o numlist.o
 	$(CC) -o testnumlist testnumlist.o numlist.o
@@ -56,6 +60,6 @@ include $(SCRIPTDIR)/Parallell-depend.make
 tags:
 	etags -t $(INCLUDEDIR)/*.h *.[hc]	
 
-specials:;
+specials: includes;
 
 include dependencies
diff --git a/src/libraries/libmisc/dependencies b/src/libraries/libmisc/dependencies
index 370b62eafdad342cec263d8289646ef942f43deb..123b2966a93630b3d3b4ba701826cfdc9f161c27 100644
--- a/src/libraries/libmisc/dependencies
+++ b/src/libraries/libmisc/dependencies
@@ -1,15 +1,46 @@
-numlist.o : numlist.c /users/ceder/gurka/lyskom/include/ansi/stdio.h \
-  /users/ceder/gurka/lyskom/include/ansi/stdlib.h \
-  /users/ceder/gurka/lyskom/include/ansi/stddef.h \
-  /usr/gnu/lib/gcc-include/sys/types.h /usr/include/sys/types.h \
+numlist.o : numlist.c /users/ceder/lyskom/include/ansi/stdio.h \
+  /users/ceder/lyskom/include/ansi/stdlib.h \
+  /users/ceder/lyskom/include/ansi/stddef.h \
+  /users/ceder/lyskom/include/ansi/sys/types.h /usr/include/sys/types.h \
   /usr/gnu/lib/gcc-include/sys/stdtypes.h /usr/include/sys/stdtypes.h \
-  /usr/include/sys/sysmacros.h /users/ceder/gurka/lyskom/include/misc-types.h \
+  /usr/include/sys/sysmacros.h /users/ceder/lyskom/include/misc-types.h \
   numlist.h 
-testnumlist.o : testnumlist.c \
-  /users/ceder/gurka/lyskom/include/ansi/stdio.h \
-  /users/ceder/gurka/lyskom/include/ansi/stdlib.h \
-  /users/ceder/gurka/lyskom/include/ansi/stddef.h \
-  /usr/gnu/lib/gcc-include/sys/types.h /usr/include/sys/types.h \
+testnumlist.o : testnumlist.c /users/ceder/lyskom/include/ansi/stdio.h \
+  /users/ceder/lyskom/include/ansi/stdlib.h \
+  /users/ceder/lyskom/include/ansi/stddef.h \
+  /users/ceder/lyskom/include/ansi/sys/types.h /usr/include/sys/types.h \
   /usr/gnu/lib/gcc-include/sys/stdtypes.h /usr/include/sys/stdtypes.h \
-  /usr/include/sys/sysmacros.h /users/ceder/gurka/lyskom/include/misc-types.h \
+  /usr/include/sys/sysmacros.h /users/ceder/lyskom/include/misc-types.h \
   numlist.h 
+numlist2.o : numlist2.c /users/ceder/lyskom/include/ansi/stdio.h \
+  /users/ceder/lyskom/include/ansi/stdlib.h \
+  /users/ceder/lyskom/include/ansi/stddef.h \
+  /users/ceder/lyskom/include/ansi/sys/types.h /usr/include/sys/types.h \
+  /usr/gnu/lib/gcc-include/sys/stdtypes.h /usr/include/sys/stdtypes.h \
+  /usr/include/sys/sysmacros.h /users/ceder/lyskom/include/misc-types.h \
+  numlist2.h 
+zmalloc.o : zmalloc.c /users/ceder/lyskom/include/ansi/stddef.h \
+  /users/ceder/lyskom/include/ansi/sys/types.h /usr/include/sys/types.h \
+  /usr/gnu/lib/gcc-include/sys/stdtypes.h /usr/include/sys/stdtypes.h \
+  /usr/include/sys/sysmacros.h /users/ceder/lyskom/include/ansi/malloc.h \
+  /users/ceder/lyskom/include/ansi/string.h \
+  /users/ceder/lyskom/include/compiler.h zmalloc.h 
+pom.o : pom.c /users/ceder/lyskom/include/ansi/sys/types.h \
+  /usr/include/sys/types.h /usr/gnu/lib/gcc-include/sys/stdtypes.h \
+  /usr/include/sys/stdtypes.h /usr/include/sys/sysmacros.h \
+  /users/ceder/lyskom/include/ansi/time.h /usr/include/time.h \
+  /users/ceder/lyskom/include/ansi/math.h /usr/include/math.h \
+  /usr/include/floatingpoint.h /usr/include/sys/ieeefp.h \
+  /users/ceder/lyskom/include/ansi/stdio.h pom.h 
+s-collat-tabs.o : s-collat-tabs.c s-collat-tabs.h \
+  /usr/gnu/lib/gcc-include/limits.h 
+s-string.o : s-string.c /users/ceder/lyskom/include/ansi/sys/types.h \
+  /usr/include/sys/types.h /usr/gnu/lib/gcc-include/sys/stdtypes.h \
+  /usr/include/sys/stdtypes.h /usr/include/sys/sysmacros.h \
+  /users/ceder/lyskom/include/ansi/stdio.h \
+  /users/ceder/lyskom/include/ansi/string.h \
+  /users/ceder/lyskom/include/ansi/ctype.h /usr/include/ctype.h \
+  /users/ceder/lyskom/include/ansi/stdlib.h \
+  /users/ceder/lyskom/include/ansi/stddef.h /usr/gnu/lib/gcc-include/assert.h \
+  /users/ceder/lyskom/include/misc-types.h s-collat-tabs.h \
+  /usr/gnu/lib/gcc-include/limits.h s-string.h 
diff --git a/src/server/Makefile b/src/server/Makefile
index 194bc8cb40d8caf6e821d350aef1cee5f9249287..be1782a82e91fe34adfe9b5c1fcba5da15e44943 100755
--- a/src/server/Makefile
+++ b/src/server/Makefile
@@ -80,7 +80,10 @@ SRCS = $(GEN_SRCS) $(RAM_SRCS) $(DISK_SRCS) $(LYS_SRCS) $(DBCK_SRCS)
 PROGRAMS = ramkomd diskomd dbck
 
 
-all: $(PROGRAMS)
+all binaries: $(PROGRAMS)
+
+includes:;
+libraries:;
 
 ramkomd: $(RAMOBJS) $(GENOBJS)
 	$(CC) $(LDFLAGS) -o ramkomd $(RAMOBJS) $(GENOBJS) $(LIBS)