#*=====================================================================*/
#*    .../project/hop/3.0.x/node_modules/fontifier/lib/Makefile        */
#*    -------------------------------------------------------------    */
#*    Author      :  Manuel Serrano                                    */
#*    Creation    :  Fri Aug 28 10:00:50 2015                          */
#*    Last change :  Tue Sep  1 14:08:11 2015 (serrano)                */
#*    Copyright   :  2015 Manuel Serrano                               */
#*    -------------------------------------------------------------    */
#*    fontifier precompilation                                         */
#*=====================================================================*/
do: build

#*---------------------------------------------------------------------*/
#*    Configuration                                                    */
#*---------------------------------------------------------------------*/
-include ../../../etc/Makefile.hopconfig
-include ../../../etc/Makefile.version
-include $(BIGLOOLIBDIR)/Makefile.config
-include $(BIGLOOLIBDIR)/Makefile.misc

HOPCLOSELIBS_S=$(BGLCLOSELIBS_S) \
  -ljs2scheme_s-$(HOPRELEASE) -lhopscript_s-$(HOPRELEASE) \
  -lhop_s-$(HOPRELEASE) -lhopscheme_s-$(HOPRELEASE) \
  -lnodejs_s-$(HOPRELEASE) -lhopwidget_s-$(HOPRELEASE)
RPATH=$(BIGLOOLIBDIR) $(DESTDIR)$(HOPLIBDIR)/$(HOPFILDIR)

DIR=node_modules/$(PACKAGE)/lib
LIBSDIR=hop/$(HOPRELEASE)/$(DIR)/.libs/$(HOPRELEASE)/$(MACH)

PACKAGE=fontifier

#*---------------------------------------------------------------------*/
#*    The entries                                                      */
#*---------------------------------------------------------------------*/
.PHONY: build install uninstall fontifier _fontifier

build: .afile o
	$(MAKE) o/fontifier_s-$(HOPRELEASE).$(SHAREDSUFFIX) \
            TARGETNAME=fontifier \
            OBJECTS=o/fontifier.o
	$(MAKE) o/_fontifier_s-$(HOPRELEASE).$(SHAREDSUFFIX) \
            TARGETNAME=_fontifier \
            OBJECTS=o/_fontifier.o

install:
	$(MAKE) mkdir DIR=$(DESTDIR)$(HOPLIBDIR)/$(LIBSDIR)
	$(MAKE) install-module TARGETNAME=_fontifier
	$(MAKE) install-module TARGETNAME=fontifier
	$(RM) -rf $(DESTDIR)$(HOPLIBDIR)/$(HOPFILDIR)/node_modules/$(PACKAGE)/lib/o

install-module:
	$(MAKE) install-shared-lib \
                INSTALL="$(INSTALL)" \
                BOOTLIBDIR=$(BUILDDIR)/$(DIR)/o \
                FILDIR=$(LIBSDIR) \
                LIBDIR=$(DESTDIR)$(HOPLIBDIR) \
                LIB=$(TARGETNAME)_s-$(HOPRELEASE)
	chmod -R $(MODDIR) $(DESTDIR)$(HOPLIBDIR)/hop/$(HOPRELEASE)/$(DIR)
	cp -r ../../$(PACKAGE) $(DESTDIR)$(HOPLIBDIR)/$(HOPFILDIR)/node_modules
	chmod $(MODEXE) $(DESTDIR)$(HOPLIBDIR)/$(LIBSDIR)/$(TARGETNAME)_s-$(HOPRELEASE).$(SHAREDSUFFIX)

uninstall:
	$(MAKE) uninstall-module TARGETNAME=_fontifier
	$(MAKE) uninstall-module TARGETNAME=fontifier

uninstall-module:
	$(MAKE) uninstall-shared-lib LIB=$(TARGETNAME)_s-$(HOPRELEASE).$(SHAREDSUFFIX)

#*---------------------------------------------------------------------*/
#*    lib                                                              */
#*---------------------------------------------------------------------*/
o:
	mkdir o

fontifier: o
	$(MAKE) o/$(TARGETNAME)_s-$(HOPRELEASE).$(SHAREDSUFFIX)

_fontifier: o
	$(MAKE) o/$(TARGETNAME)_s-$(HOPRELEASE).$(SHAREDSUFFIX)

o/$(TARGETNAME)_s-$(HOPRELEASE).$(SHAREDSUFFIX): $(OBJECTS)
	$(MAKE) shared-lib \
             LDINSTALLNAMEDIR=$(DESTDIR)$(HOPLIBDIR)/$(LIBSDIR) \
             BOOTLIBDIR=$(BUILDDIR)/$(DIR)/o \
             FORCELD=true \
             LIBDEST=$@ \
             SONAME=$(TARGETNAME)_s-$(HOPRELEASE).$(SHAREDSUFFIX) \
             LDOPTS="-L$(BUILDLIBDIR) $(LDOPTS)" \
             CLOSELIBS="-lbigloo_s-$(RELEASE) $(HOPCLOSELIBS_S)"

#*---------------------------------------------------------------------*/
#*    .afile                                                           */
#*---------------------------------------------------------------------*/
.afile: _fontifier.hop
	(cd $(dir $@) && $(AFILE) -suffix hop $(notdir $^) -o $(notdir $@))

#*---------------------------------------------------------------------*/
#*    clean                                                            */
#*---------------------------------------------------------------------*/
clean:
	$(RM) -rf o

devclean:
	$(RM) -f .afile

distclean: devclean

#*---------------------------------------------------------------------*/
#*    Suffixes                                                         */
#*---------------------------------------------------------------------*/
.SUFFIXES:
.SUFFIXES: .scm .o .hop .js

#*---------------------------------------------------------------------*/
#*    explicit rules                                                   */
#*---------------------------------------------------------------------*/
o/_fontifier.o: _fontifier.hop
	@ $(call compile3,$(HOPC),$(HFLAGS),$(BCFLAGS) -dload-sym,$(BLFLAGS),-c,$< -o $@)

#*---------------------------------------------------------------------*/
#*    The implicit rules                                               */
#*---------------------------------------------------------------------*/
o/%.o: %.scm
	@ $(call compile2,$(BIGLOO),$(BCFLAGS),$(BLFLAGS),-c,$< -o $@)

o/%.o: %.hop
	@ $(call compile3,$(HOPC),$(HFLAGS),$(BCFLAGS),$(BLFLAGS),-c,$< -o $@)

%.scm: %.hop
	@ $(call compile3,$(HOPC),$(HFLAGS),$(BCFLAGS),$(BLFLAGS),-s,$< -o $@)

o/%.o: %.js
	@ $(call compile3,$(HOPC),$(HFLAGS),$(BCFLAGS) -dload-sym,$(BLFLAGS),$(BHOPCFLAGS) -c --no-js-module-main --js-module-name __nodejs_$* --js-module-path $*,$< -o $@)

