@@ -104,20 +104,21 @@ OBJS11 = ${OBJS10:.S=.o}
104104OBJS += ${OBJS11:.xpm=.o}
105105
106106LIB_OBJS = ${OBJS:.o=.lib.o}
107+ MORPHOS_LIB_OBJS = ${OBJS:.o=.moslib.o}
107108PLUGIN_OBJS = ${OBJS:.o=.plugin.o}
108109
109110MO_FILES = ${LOCALES:.po=.mo}
110111
111112.SILENT:
112113.SUFFIXES:
113- .SUFFIXES: .beam .c .c.dep .cc .cc.dep .class .cxx .cxx.dep .d .erl .lib.o .java .mo .m .m.dep .mm .mm.dep .o .plugin.o .po .py .pyc .rc .S .S.dep .xpm
114+ .SUFFIXES: .beam .c .c.dep .cc .cc.dep .class .cxx .cxx.dep .d .erl .lib.o .java .mo .m .m.dep .mm .mm.dep .moslib.o . o .plugin.o .po .py .pyc .rc .S .S.dep .xpm
114115.PHONY: all subdirs subdirs-after pre-depend depend install install-extra uninstall uninstall-extra clean distclean locales ${SUBDIRS} ${SUBDIRS_AFTER}
115116
116117all:
117118 ${MAKE} pre-all
118119 ${MAKE} subdirs
119120 ${MAKE} depend
120- ${MAKE} ${STATIC_LIB} ${STATIC_LIB_NOINST} ${STATIC_PIC_LIB} ${STATIC_PIC_LIB_NOINST} ${SHARED_LIB} ${SHARED_LIB_NOINST} ${PLUGIN} ${PLUGIN_NOINST} ${PROG} ${PROG_NOINST} ${JARFILE} locales
121+ ${MAKE} ${STATIC_LIB} ${STATIC_LIB_NOINST} ${STATIC_PIC_LIB} ${STATIC_PIC_LIB_NOINST} ${SHARED_LIB} ${SHARED_LIB_NOINST} ${MORPHOS_LIB} ${MORPHOS_LIB_NOINST} ${ PLUGIN} ${PLUGIN_NOINST} ${PROG} ${PROG_NOINST} ${JARFILE} locales
121122 ${MAKE} subdirs-after
122123 ${MAKE} post-all
123124
@@ -187,27 +188,27 @@ depend: pre-depend ${SRCS}
187188
188189.c.c.dep:
189190 ${CPP} ${CPPFLAGS} ${CFLAGS} -M $< | \
190- sed 's/^\([^\.]*\)\.o:/\1.o \1.lib.o \1.plugin.o:/' >$@ || \
191+ sed 's/^\([^\.]*\)\.o:/\1.o \1.lib.o \1.moslib.o \1. plugin.o:/' >$@ || \
191192 { rm -f $@; false; }
192193
193194.cc.cc.dep .cxx.cxx.dep:
194195 ${CPP} ${CPPFLAGS} ${CXXFLAGS} -M $< | \
195- sed 's/^\([^\.]*\)\.o:/\1.o \1.lib.o \1.plugin.o:/' >$@ || \
196+ sed 's/^\([^\.]*\)\.o:/\1.o \1.lib.o \1.moslib.o \1. plugin.o:/' >$@ || \
196197 { rm -f $@; false; }
197198
198199.m.m.dep:
199200 ${CPP} ${CPPFLAGS} ${OBJCFLAGS} -M $< | \
200- sed 's/^\([^\.]*\)\.o:/\1.o \1.lib.o \1.plugin.o:/' >$@ || \
201+ sed 's/^\([^\.]*\)\.o:/\1.o \1.lib.o \1.moslib.o \1. plugin.o:/' >$@ || \
201202 { rm -f $@; false; }
202203
203204.mm.mm.dep:
204- ${CPP} ${CPPFLAGS} ${OBJCXXFLAGS } -M $< | \
205- sed 's/^\([^\.]*\)\.o:/\1.o \1.lib.o \1.plugin.o:/' >$@ || \
205+ ${CPP} ${CPPFLAGS} ${OBJCPPFLAGS } -M $< | \
206+ sed 's/^\([^\.]*\)\.o:/\1.o \1.lib.o \1.moslib.o \1. plugin.o:/' >$@ || \
206207 { rm -f $@; false; }
207208
208209.S.S.dep:
209210 ${CPP} ${CPPFLAGS} ${ASFLAGS} -M $< | \
210- sed 's/^\([^\.]*\)\.o:/\1.o \1.lib.o \1.plugin.o:/' >$@ || \
211+ sed 's/^\([^\.]*\)\.o:/\1.o \1.lib.o \1.moslib.o \1. plugin.o:/' >$@ || \
211212 { rm -f $@; false; }
212213
213214pre-depend:
@@ -273,6 +274,42 @@ ${SHARED_LIB} ${SHARED_LIB_NOINST}: ${EXT_DEPS} ${LIB_OBJS} ${LIB_OBJS_EXTRA}
273274 rm -fr $$dir; \
274275 done
275276
277+ ${MORPHOS_LIB} ${MORPHOS_LIB_NOINST}: ${EXT_DEPS} ${MORPHOS_LIB_OBJS} ${MORPHOS_LIB_OBJS_EXTRA}
278+ ${LINK_STATUS}
279+ out="$@"; \
280+ objs=""; \
281+ ars=""; \
282+ for i in ${MORPHOS_LIB_OBJS} ${MORPHOS_LIB_OBJS_EXTRA}; do \
283+ case $$i in \
284+ *.a) \
285+ ars="$$ars $$i" \
286+ ;; \
287+ *.o) \
288+ objs="$$objs $$i" \
289+ ;; \
290+ esac \
291+ done; \
292+ for i in $$ars; do \
293+ dir=".$$(echo $$i | sed 's/\//_/g').objs"; \
294+ rm -fr $$dir; \
295+ mkdir -p $$dir; \
296+ cd $$dir; \
297+ ${AR} x ../$$i; \
298+ for j in *.o; do \
299+ objs="$$objs $$dir/$$j"; \
300+ done; \
301+ cd ..; \
302+ done; \
303+ if ${LD} -o $@ $$objs -nostartfiles ${LDFLAGS} ${LIBS}; then \
304+ ${LINK_OK}; \
305+ else \
306+ ${LINK_FAILED}; \
307+ fi; \
308+ for i in $$ars; do \
309+ dir=".$$(echo $$i | sed 's/\//_/g').objs"; \
310+ rm -fr $$dir; \
311+ done
312+
276313${PLUGIN} ${PLUGIN_NOINST}: ${EXT_DEPS} ${PLUGIN_OBJS}
277314 ${LINK_STATUS}
278315 out="$@"; \
@@ -405,6 +442,15 @@ locales: ${MO_FILES}
405442 else \
406443 ${COMPILE_LIB_FAILED}; \
407444 fi
445+ .c.moslib.o:
446+ ${COMPILE_MOSLIB_STATUS}
447+ in="$<"; \
448+ out="$@"; \
449+ if ${CC} -mbaserel32 ${CFLAGS} ${CPPFLAGS} ${CFLAGS_$@} -c -o $@ $<; then \
450+ ${COMPILE_MOSLIB_OK}; \
451+ else \
452+ ${COMPILE_MOSLIB_FAILED}; \
453+ fi
408454.c.plugin.o:
409455 ${COMPILE_PLUGIN_STATUS}
410456 in="$<"; \
@@ -433,6 +479,15 @@ locales: ${MO_FILES}
433479 else \
434480 ${COMPILE_LIB_FAILED}; \
435481 fi
482+ .cc.moslib.o .cxx.moslib.o:
483+ ${COMPILE_MOSLIB_STATUS}
484+ in="$<"; \
485+ out="$@"; \
486+ if ${CXX} -mbaserel32 ${CXXFLAGS} ${CPPFLAGS} ${CXXFLAGS_$@} -c -o $@ $<; then \
487+ ${COMPILE_MOSLIB_OK}; \
488+ else \
489+ ${COMPILE_MOSLIB_FAILED}; \
490+ fi
436491.cc.plugin.o .cxx.plugin.o:
437492 ${COMPILE_PLUGIN_STATUS}
438493 in="$<"; \
@@ -499,6 +554,15 @@ locales: ${MO_FILES}
499554 else \
500555 ${COMPILE_LIB_FAILED}; \
501556 fi
557+ .m.moslib.o:
558+ ${COMPILE_MOSLIB_STATUS}
559+ in="$<"; \
560+ out="$@"; \
561+ if ${OBJC} -mbaserel32 ${OBJCFLAGS} ${CPPFLAGS} ${OBJCFLAGS_$@} -c -o $@ $<; then \
562+ ${COMPILE_MOSLIB_OK}; \
563+ else \
564+ ${COMPILE_MOSLIB_FAILED}; \
565+ fi
502566.m.plugin.o:
503567 ${COMPILE_PLUGIN_STATUS}
504568 in="$<"; \
@@ -527,6 +591,15 @@ locales: ${MO_FILES}
527591 else \
528592 ${COMPILE_LIB_FAILED}; \
529593 fi
594+ .mm.moslib.o:
595+ ${COMPILE_MOSLIB_STATUS}
596+ in="$<"; \
597+ out="$@"; \
598+ if ${OBJCXX} -mbaserel32 ${OBJCXXFLAGS} ${CPPFLAGS} ${OBJCXXFLAGS_$@} -c -o $@ $<; then \
599+ ${COMPILE_MOSLIB_OK}; \
600+ else \
601+ ${COMPILE_MOSLIB_FAILED}; \
602+ fi
530603.mm.plugin.o:
531604 ${COMPILE_PLUGIN_STATUS}
532605 in="$<"; \
@@ -567,7 +640,7 @@ locales: ${MO_FILES}
567640 ${COMPILE_FAILED}; \
568641 fi
569642
570- .S.o:
643+ .S.o .S.moslib.o :
571644 ${COMPILE_STATUS}
572645 in="$<"; \
573646 out="$@"; \
@@ -613,6 +686,15 @@ locales: ${MO_FILES}
613686 else \
614687 ${COMPILE_LIB_FAILED}; \
615688 fi
689+ .xpm.moslib.o:
690+ ${COMPILE_MOSLIB_STATUS}
691+ in="$<"; \
692+ out="$@"; \
693+ if ${CC} -mbasel32 ${CFLAGS} ${CPPFLAGS} ${CFLAGS_$@} -x c -c -o $@ $<; then \
694+ ${COMPILE_MOSLIB_OK}; \
695+ else \
696+ ${COMPILE_MOSLIB_FAILED}; \
697+ fi
616698.xpm.plugin.o:
617699 ${COMPILE_PLUGIN_STATUS}
618700 in="$<"; \
@@ -876,6 +958,9 @@ COMPILE_FAILED = err=$$?; printf "@TERM_EL@@TERM_SETAF1@Failed to compile @TERM_
876958COMPILE_LIB_STATUS = printf "@TERM_EL@@TERM_SETAF3@Compiling @TERM_BOLD@%s@TERM_SGR0@@TERM_SETAF3@ (lib)...@TERM_SGR0@\r" "$<"
877959COMPILE_LIB_OK = printf "@TERM_EL@@TERM_SETAF2@Successfully compiled @TERM_BOLD@%s@TERM_SGR0@@TERM_SETAF2@ (lib).@TERM_SGR0@\n" "$<"
878960COMPILE_LIB_FAILED = err=$$?; printf "@TERM_EL@@TERM_SETAF1@Failed to compile @TERM_BOLD@%s@TERM_SGR0@@TERM_SETAF1@ (lib)!@TERM_SGR0@\n" "$<"; exit $$err
961+ COMPILE_MOSLIB_STATUS = printf "@TERM_EL@@TERM_SETAF3@Compiling @TERM_BOLD@%s@TERM_SGR0@@TERM_SETAF3@ (moslib)...@TERM_SGR0@\r" "$<"
962+ COMPILE_MOSLIB_OK = printf "@TERM_EL@@TERM_SETAF2@Successfully compiled @TERM_BOLD@%s@TERM_SGR0@@TERM_SETAF2@ (moslib).@TERM_SGR0@\n" "$<"
963+ COMPILE_MOSLIB_FAILED = err=$$?; printf "@TERM_EL@@TERM_SETAF1@Failed to compile @TERM_BOLD@%s@TERM_SGR0@@TERM_SETAF1@ (moslib)!@TERM_SGR0@\n" "$<"; exit $$err
879964COMPILE_PLUGIN_STATUS = printf "@TERM_EL@@TERM_SETAF3@Compiling @TERM_BOLD@%s@TERM_SGR0@@TERM_SETAF3@ (plugin)...@TERM_SGR0@\r" "$<"
880965COMPILE_PLUGIN_OK = printf "@TERM_EL@@TERM_SETAF2@Successfully compiled @TERM_BOLD@%s@TERM_SGR0@@TERM_SETAF2@ (plugin).@TERM_SGR0@\n" "$<"
881966COMPILE_PLUGIN_FAILED = err=$$?; printf "@TERM_EL@@TERM_SETAF1@Failed to compile @TERM_BOLD@%s@TERM_SGR0@@TERM_SETAF1@ (plugin)!@TERM_SGR0@\n" "$<"; exit $$err
0 commit comments