all :: config
CONFIG_OPTS = --enable-termcap
WWWGET = lynx -source
MV_F = mv -f
DLL_LN_OPTS = -Zcrtdll -Zdll -Zomf -Zmt
config: config.cache
config.cache: configure.cmd configure
-$(MV_F) $@ $@.ref
configure.cmd $(CONFIG_OPTS)
configure.cmd: configure convert_configure.pl
perl convert_configure.pl configure > $@
convert_configure.pl:
$(WWWGET) ftp://ftp.math.ohio-state.edu/pub/users/ilya/os2/$@ > $@
install ::
echo ***
echo *** Do not use this command. Use install.os2 instead.
echo ***
exit 2
install.os2 : install.emxdata install.libs install.progs
include ./Makefile
all :: make.dlls
LIBRARIES = ncurses form menu panel
DLL_TAG = $(NCURSES_MAJOR)
LIB_TAG = _s
DLL_ROOTS = $(addsuffix $(DLL_TAG), $(LIBRARIES))
DLLS = $(addsuffix .dll, $(addprefix ./lib/, $(DLL_ROOTS)))
LIB_ROOTS = $(addsuffix $(LIB_TAG), $(LIBRARIES))
LIBS = $(addsuffix .lib, $(addprefix ./lib/, $(LIB_ROOTS)))
LIBS_AOUT = $(addsuffix .a, $(addprefix ./lib/, $(LIB_ROOTS)))
DEFS = $(addsuffix .def, $(addprefix ./misc/, $(LIBRARIES)))
DLL_SIGNATURE = NCurses-$(NCURSES_MAJOR)-$(NCURSES_MINOR)-$(NCURSES_PATCH)
./lib/%$(LIB_TAG).lib : ./misc/%.def
emximp -o $@ $<
./lib/%$(LIB_TAG).a : ./misc/%.def
emximp -o $@ $<
./lib/%$(DLL_TAG).dll : ./lib/%.a
emxomf -o ./lib/$*$(DLL_TAG).lib $<
if [ "$*" = "ncurses" ]; then \
gcc $(LDFLAGS) $(DLL_LN_OPTS) ./lib/$*$(DLL_TAG).lib \
./misc/$*.def -o $@; \
else \
gcc $(LDFLAGS) $(DLL_LN_OPTS) ./lib/$*$(DLL_TAG).lib \
./lib/ncurses$(LIB_TAG).lib ./misc/$*.def -o $@; \
fi
-rm -f ./lib/$*$(DLL_TAG).lib
make.dlls : $(DEFS) $(LIBS) $(DLLS) $(LIBS_AOUT)
$(DEFS) : make.defs
LIBDIR = $(DESTDIR)$(libdir)
$(LIBDIR) :
mkdir -p $@
install.libs :: $(LIBS) $(DLLS) $(LIBDIR)
@for i in $(DLL_ROOTS); do \
echo installing ./lib/$$i.dll as $(LIBDIR)/$$i.dll; \
$(INSTALL_DATA) ./lib/$$i.dll $(LIBDIR)/$$i.dll; done
@for i in $(LIB_ROOTS); do \
echo installing ./lib/$$i.lib as $(LIBDIR)/$$i.lib; \
$(INSTALL_DATA) ./lib/$$i.lib $(LIBDIR)/$$i.lib; done
uninstall.libs ::
-@for i in $(DLL_ROOTS); do \
echo uninstalling $(LIBDIR)/$$i.dll; \
rm -f $(LIBDIR)/$$i.dll; done
-@for i in $(LIB_ROOTS); do \
echo uninstalling $(LIBDIR)/$$i.lib; \
rm -f $(LIBDIR)/$$i.lib; done
make.defs :
for i in $(LIBRARIES); do \
echo LIBRARY $${i}$(DLL_TAG) INITINSTANCE TERMINSTANCE > ./misc/$$i.def; \
echo DESCRIPTION \"$(DLL_SIGNATURE), module $$i\" >> ./misc/$$i.def; \
echo CODE LOADONCALL >> ./misc/$$i.def; \
echo DATA LOADONCALL NONSHARED MULTIPLE >> ./misc/$$i.def; \
echo EXPORTS >> ./misc/$$i.def; \
echo Creating $$i.def; \
(cmd /C ".\\misc\\makedef.cmd ./lib/$$i.a ./misc/$$i.ref >> ./misc/$$i.def" \
&& cmd /C ".\\misc\\chkdef.cmd ./misc/$$i.def") \
|| exit 1; \
done
touch make.defs
save.defs :
for i in $(LIBRARIES); do \
test -f ./misc/$$i.def && cp ./misc/$$i.def ./misc/$$i.ref; \
done
clean \
os2clean ::
-rm -f $(DLLS) $(LIBS)
realclean ::
-rm -f $(addprefix ./misc/, $(addsuffix .def, $(LIBRARIES)))
TICDIR = $(DESTDIR)$(datadir)/terminfo
TABSETDIR = $(DESTDIR)$(datadir)/tabset
$(TICDIR) :
mkdir -p $@
install \
install.emxdata :: $(TICDIR)
-@rm -fr $(TICDIR)/*
echo Building terminfo database, please wait...
set TERMINFO=$(TICDIR); ./progs/tic ./misc/emx.src
echo Installing the terminfo cleaner and the sources...
cp ./misc/emx.src ./misc/cleantic.cmd $(TICDIR)
./misc/cleantic.cmd $(TICDIR)
uninstall \
uninstall.emxdata ::
-cd $(TICDIR) && rm -rf *
-cd $(TABSETDIR) && rm -rf *
OS2NAME=ncurses-$(NCURSES_MAJOR).$(NCURSES_MINOR)-emx
os2dist :
$(MAKE) -f Makefile.os2 os2clean
./configure --without-debug --with-install-prefix=`pwd|sed -e 's@^.:@@'`/$(OS2NAME)
$(MAKE) -f Makefile.os2 $(CF_MFLAGS) install.os2
-rm -f $(OS2NAME).zip
echo NCurses-$(NCURSES_MAJOR).$(NCURSES_MINOR)-$(NCURSES_PATCH) for emx > $(OS2NAME)/FILE_ID.DIZ
echo Binary release. >> $(OS2NAME)/FILE_ID.DIZ
zip -r $(OS2NAME).zip ./$(OS2NAME)
clean \
os2clean ::
-rm -rf $(OS2NAME)
-rm -f $(OS2NAME).zip