# ------------------------------------------------------------------------
# Makefile: header file patches for the SpecC system
# ------------------------------------------------------------------------
#
# Modifications: (most recent first)
#
# RD 12/15/14	finalized scrc_V22
# SD 12/10/14	adjustments for modern Linux support
# RD 11/01/14	supplied this tree of patches from 'scc' sources
# ------------------------------------------------------------------------

# --- macros

include ../../Makefile.macros

DIST	=	Makefile		\
		RedHatEL3.README	\
		RedHatEL4.README	\
		RedHatEL5.README	\
		RedHatEL6.README	\
		Fedora4.README		\
		Fedora12.README		\
		Ubuntu8.README

ORIG	=	Makefile		\
		RedHatEL3.README	\
		RedHatEL4.README	\
		RedHatEL5.README	\
		RedHatEL6.README	\
		Fedora4.README		\
		Fedora12.README		\
		Ubuntu8.README

PLATFORMS =	RedHatEL3		\
		RedHatEL4		\
		RedHatEL5		\
		RedHatEL6		\
		Fedora4			\
		Fedora12		\
		Ubuntu8

DIRS_RHEL3 =	bits
FILES_RHEL3 =	unistd.h		\
		bits/huge_val.h

DIRS_RHEL4 =	bits
FILES_RHEL4 =	unistd.h		\
		bits/huge_val.h

DIRS_RHEL5 =	bits
FILES_RHEL5 =	unistd.h		\
		bits/huge_val.h		\
		bits/pthreadtypes.h

DIRS_RHEL6 =	bits
FILES_RHEL6 =	unistd.h		\
		features.h		\
		bits/nan.h		\
		bits/huge_val.h		\
		bits/huge_valf.h	\
		bits/pthreadtypes.h	\
		bits/socket.h

DIRS_FC4 =	bits
FILES_FC4 =	unistd.h		\
		bits/huge_val.h

DIRS_FC12 =	bits
FILES_FC12 =	unistd.h		\
		stdio.h			\
		stddef.h		\
		xlocale.h		\
		bits/byteswap.h		\
		bits/huge_val.h		\
		bits/huge_valf.h	\
		bits/huge_vall.h	\
		bits/nan.h		\
		bits/pthreadtypes.h

DIRS_UBT8 =	bits
FILES_UBT8 =	unistd.h		\
		bits/huge_val.h		\
		bits/huge_valf.h	\
		bits/huge_vall.h	\
		bits/pthreadtypes.h

# --- production rules

all:
	for p in $(PLATFORMS); do					\
		if [ "$(PLATFORM)" = "$$p" ]; then			\
			$(MAKE) patch_$(PLATFORM);			\
		fi;							\
	done

install:
	for p in $(PLATFORMS); do					\
		if [ "$(PLATFORM)" = "$$p" ]; then			\
			$(MAKE) install_$(PLATFORM);			\
		fi;							\
	done

uninstall:
	for p in $(PLATFORMS); do					\
		if [ "$(PLATFORM)" = "$$p" ]; then			\
			$(MAKE) uninstall_$(PLATFORM);			\
		fi;							\
	done


# --- service rules

clean:
	-$(RM) core *.bak *.BAK
	for p in $(PLATFORMS); do					\
		if [ "$(PLATFORM)" = "$$p" ]; then			\
			$(MAKE) unpatch_$(PLATFORM);			\
		fi;							\
	done

distclean:	clean


dist:
	for file in $(DIST); do echo $(DISTPREFIX)/$$file >>$(DISTLIST); done
	for file in $(FILES_RHEL3); do echo $(DISTPREFIX)/RedHatEL3/$$file >>$(DISTLIST); done
	for file in $(FILES_RHEL4); do echo $(DISTPREFIX)/RedHatEL4/$$file >>$(DISTLIST); done
	for file in $(FILES_RHEL5); do echo $(DISTPREFIX)/RedHatEL5/$$file >>$(DISTLIST); done
	for file in $(FILES_RHEL6); do echo $(DISTPREFIX)/RedHatEL6/$$file >>$(DISTLIST); done
	for file in $(FILES_FC4); do echo $(DISTPREFIX)/Fedora4/$$file >>$(DISTLIST); done
	for file in $(FILES_FC12); do echo $(DISTPREFIX)/Fedora12/$$file >>$(DISTLIST); done
	for file in $(FILES_UBT8); do echo $(DISTPREFIX)/Ubuntu8/$$file >>$(DISTLIST); done

orig:
	for file in $(ORIG); do echo $(ORIGPREFIX)/$$file >>$(ORIGLIST); done
	for file in $(FILES_RHEL3); do echo $(ORIGPREFIX)/RedHatEL3/$$file >>$(ORIGLIST); done
	for file in $(FILES_RHEL4); do echo $(ORIGPREFIX)/RedHatEL4/$$file >>$(ORIGLIST); done
	for file in $(FILES_RHEL5); do echo $(ORIGPREFIX)/RedHatEL5/$$file >>$(ORIGLIST); done
	for file in $(FILES_RHEL6); do echo $(ORIGPREFIX)/RedHatEL6/$$file >>$(ORIGLIST); done
	for file in $(FILES_FC4); do echo $(ORIGPREFIX)/Fedora4/$$file >>$(ORIGLIST); done
	for file in $(FILES_FC12); do echo $(ORIGPREFIX)/Fedora12/$$file >>$(ORIGLIST); done
	for file in $(FILES_UBT8); do echo $(ORIGPREFIX)/Ubuntu8/$$file >>$(ORIGLIST); done


# --- specific rules to patch/unpatch/install/uninstall
#     (customizable for each platform)

patch_Fedora4:
	for dir in $(DIRS_FC4); do					\
		$(MKDIR) $(SPECC_INC)/$$dir;				\
	done
	for file in $(FILES_FC4); do					\
		$(RM) $(SPECC_INC)/$$file;				\
		$(LINK) $(SPECC_INC)/patches/$(PLATFORM)/$$file $(SPECC_INC)/$$file;	\
	done

unpatch_Fedora4:
	for file in $(FILES_FC4); do					\
		$(RM) $(SPECC_INC)/$$file;				\
	done
	for dir in $(DIRS_FC4); do					\
		if [ -d $(SPECC_INC)/$$dir ]; then			\
			$(RMDIR) $(SPECC_INC)/$$dir;			\
		fi;							\
	done

install_Fedora4:
	for dir in $(DIRS_FC4); do					\
		$(MKDIR) $(INSTALL_PREFIX)/inc/$$dir;			\
	done
	for file in $(FILES_FC4); do					\
		$(CP) $(PLATFORM)/$$file $(INSTALL_PREFIX)/inc/$$file;	\
	done

uninstall_Fedora4:
	for file in $(FILES_FC4); do					\
		$(RM) $(INSTALL_PREFIX)/inc/$$file;			\
	done
	for dir in $(DIRS_FC4); do					\
		if [ -d $(INSTALL_PREFIX)/inc/$$dir ]; then		\
			$(RMDIR) $(INSTALL_PREFIX)/inc/$$dir;		\
		fi;							\
	done


patch_Fedora12:
	for dir in $(DIRS_FC12); do					\
		$(MKDIR) $(SPECC_INC)/$$dir;				\
	done
	for file in $(FILES_FC12); do					\
		$(RM) $(SPECC_INC)/$$file;				\
		$(LINK) $(SPECC_INC)/patches/$(PLATFORM)/$$file $(SPECC_INC)/$$file;	\
	done

unpatch_Fedora12:
	for file in $(FILES_FC12); do					\
		$(RM) $(SPECC_INC)/$$file;				\
	done
	for dir in $(DIRS_FC12); do					\
		if [ -d $(SPECC_INC)/$$dir ]; then			\
			$(RMDIR) $(SPECC_INC)/$$dir;			\
		fi;							\
	done

install_Fedora12:
	for dir in $(DIRS_FC12); do					\
		$(MKDIR) $(INSTALL_PREFIX)/inc/$$dir;			\
	done
	for file in $(FILES_FC12); do					\
		$(CP) $(PLATFORM)/$$file $(INSTALL_PREFIX)/inc/$$file;	\
	done

uninstall_Fedora12:
	for file in $(FILES_FC12); do					\
		$(RM) $(INSTALL_PREFIX)/inc/$$file;			\
	done
	for dir in $(DIRS_FC12); do					\
		if [ -d $(INSTALL_PREFIX)/inc/$$dir ]; then		\
			$(RMDIR) $(INSTALL_PREFIX)/inc/$$dir;		\
		fi;							\
	done


patch_RedHatEL3:
	for dir in $(DIRS_RHEL3); do					\
		$(MKDIR) $(SPECC_INC)/$$dir;				\
	done
	for file in $(FILES_RHEL3); do					\
		$(RM) $(SPECC_INC)/$$file;				\
		$(LINK) $(SPECC_INC)/patches/$(PLATFORM)/$$file $(SPECC_INC)/$$file;	\
	done

unpatch_RedHatEL3:
	for file in $(FILES_RHEL3); do					\
		$(RM) $(SPECC_INC)/$$file;				\
	done
	for dir in $(DIRS_RHEL3); do					\
		if [ -d $(SPECC_INC)/$$dir ]; then			\
			$(RMDIR) $(SPECC_INC)/$$dir;			\
		fi;							\
	done

install_RedHatEL3:
	for dir in $(DIRS_RHEL3); do					\
		$(MKDIR) $(INSTALL_PREFIX)/inc/$$dir;			\
	done
	for file in $(FILES_RHEL3); do					\
		$(CP) $(PLATFORM)/$$file $(INSTALL_PREFIX)/inc/$$file;	\
	done

uninstall_RedHatEL3:
	for file in $(FILES_RHEL3); do					\
		$(RM) $(INSTALL_PREFIX)/inc/$$file;			\
	done
	for dir in $(DIRS_RHEL3); do					\
		if [ -d $(INSTALL_PREFIX)/inc/$$dir ]; then		\
			$(RMDIR) $(INSTALL_PREFIX)/inc/$$dir;		\
		fi;							\
	done

patch_RedHatEL4:
	for dir in $(DIRS_RHEL4); do					\
		$(MKDIR) $(SPECC_INC)/$$dir;				\
	done
	for file in $(FILES_RHEL4); do					\
		$(RM) $(SPECC_INC)/$$file;				\
		$(LINK) $(SPECC_INC)/patches/$(PLATFORM)/$$file $(SPECC_INC)/$$file;	\
	done

unpatch_RedHatEL4:
	for file in $(FILES_RHEL4); do					\
		$(RM) $(SPECC_INC)/$$file;				\
	done
	for dir in $(DIRS_RHEL4); do					\
		if [ -d $(SPECC_INC)/$$dir ]; then			\
			$(RMDIR) $(SPECC_INC)/$$dir;			\
		fi;							\
	done

install_RedHatEL4:
	for dir in $(DIRS_RHEL4); do					\
		$(MKDIR) $(INSTALL_PREFIX)/inc/$$dir;			\
	done
	for file in $(FILES_RHEL4); do					\
		$(CP) $(PLATFORM)/$$file $(INSTALL_PREFIX)/inc/$$file;	\
	done

uninstall_RedHatEL4:
	for file in $(FILES_RHEL4); do					\
		$(RM) $(INSTALL_PREFIX)/inc/$$file;			\
	done
	for dir in $(DIRS_RHEL4); do					\
		if [ -d $(INSTALL_PREFIX)/inc/$$dir ]; then		\
			$(RMDIR) $(INSTALL_PREFIX)/inc/$$dir;		\
		fi;							\
	done



patch_RedHatEL5:
	for dir in $(DIRS_RHEL5); do					\
		$(MKDIR) $(SPECC_INC)/$$dir;				\
	done
	for file in $(FILES_RHEL5); do					\
		$(RM) $(SPECC_INC)/$$file;				\
		$(LINK) $(SPECC_INC)/patches/$(PLATFORM)/$$file $(SPECC_INC)/$$file;	\
	done

unpatch_RedHatEL5:
	for file in $(FILES_RHEL5); do					\
		$(RM) $(SPECC_INC)/$$file;				\
	done
	for dir in $(DIRS_RHEL5); do					\
		if [ -d $(SPECC_INC)/$$dir ]; then			\
			$(RMDIR) $(SPECC_INC)/$$dir;			\
		fi;							\
	done

install_RedHatEL5:
	for dir in $(DIRS_RHEL5); do					\
		$(MKDIR) $(INSTALL_PREFIX)/inc/$$dir;			\
	done
	for file in $(FILES_RHEL5); do					\
		$(CP) $(PLATFORM)/$$file $(INSTALL_PREFIX)/inc/$$file;	\
	done

uninstall_RedHatEL5:
	for file in $(FILES_RHEL5); do					\
		$(RM) $(INSTALL_PREFIX)/inc/$$file;			\
	done
	for dir in $(DIRS_RHEL5); do					\
		if [ -d $(INSTALL_PREFIX)/inc/$$dir ]; then		\
			$(RMDIR) $(INSTALL_PREFIX)/inc/$$dir;		\
		fi;							\
	done


patch_RedHatEL6:
	for dir in $(DIRS_RHEL6); do					\
		$(MKDIR) $(SPECC_INC)/$$dir;				\
	done
	for file in $(FILES_RHEL6); do					\
		$(RM) $(SPECC_INC)/$$file;				\
		$(LINK) $(SPECC_INC)/patches/$(PLATFORM)/$$file $(SPECC_INC)/$$file;	\
	done

unpatch_RedHatEL6:
	for file in $(FILES_RHEL6); do					\
		$(RM) $(SPECC_INC)/$$file;				\
	done
	for dir in $(DIRS_RHEL6); do					\
		if [ -d $(SPECC_INC)/$$dir ]; then			\
			$(RMDIR) $(SPECC_INC)/$$dir;			\
		fi;							\
	done

install_RedHatEL6:
	for dir in $(DIRS_RHEL6); do					\
		$(MKDIR) $(INSTALL_PREFIX)/inc/$$dir;			\
	done
	for file in $(FILES_RHEL6); do					\
		$(CP) $(PLATFORM)/$$file $(INSTALL_PREFIX)/inc/$$file;	\
	done

uninstall_RedHatEL6:
	for file in $(FILES_RHEL6); do					\
		$(RM) $(INSTALL_PREFIX)/inc/$$file;			\
	done
	for dir in $(DIRS_RHEL6); do					\
		if [ -d $(INSTALL_PREFIX)/inc/$$dir ]; then		\
			$(RMDIR) $(INSTALL_PREFIX)/inc/$$dir;		\
		fi;							\
	done


patch_Ubuntu8:
	for dir in $(DIRS_UBT8); do					\
		$(MKDIR) $(SPECC_INC)/$$dir;				\
	done
	for file in $(FILES_UBT8); do					\
		$(RM) $(SPECC_INC)/$$file;				\
		$(LINK) $(SPECC_INC)/patches/$(PLATFORM)/$$file $(SPECC_INC)/$$file;	\
	done

unpatch_Ubuntu8:
	for file in $(FILES_UBT8); do					\
		$(RM) $(SPECC_INC)/$$file;				\
	done
	for dir in $(DIRS_UBT8); do					\
		if [ -d $(SPECC_INC)/$$dir ]; then			\
			$(RMDIR) $(SPECC_INC)/$$dir;			\
		fi;							\
	done

install_Ubuntu8:
	for dir in $(DIRS_UBT8); do					\
		$(MKDIR) $(INSTALL_PREFIX)/inc/$$dir;			\
	done
	for file in $(FILES_UBT8); do					\
		$(CP) $(PLATFORM)/$$file $(INSTALL_PREFIX)/inc/$$file;	\
	done

uninstall_Ubuntu8:
	for file in $(FILES_UBT8); do					\
		$(RM) $(INSTALL_PREFIX)/inc/$$file;			\
	done
	for dir in $(DIRS_UBT8); do					\
		if [ -d $(INSTALL_PREFIX)/inc/$$dir ]; then		\
			$(RMDIR) $(INSTALL_PREFIX)/inc/$$dir;		\
		fi;							\
	done

# --- EOF Makefile ---
