## Process this file with automake to produce Makefile.in
#
-# $Id$
-#
# Copyright (c) 2000, Red Hat, Inc.
# Copyright (c) 2002, Robert Collins
#
# We would like to use -Winline for C++ as well, but some STL code triggers
# this warning. (Bug verified present in gcc-3.3)
-# -Wno-uninitialized added to deal with g++ 3.4.4's spurious STL warnings
-# (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22207)
-BASECXXFLAGS = -Wall -Wno-uninitialized -Wpointer-arith -Wcomments \
- -Wcast-align -Wwrite-strings -fno-builtin-sscanf
-AM_CXXFLAGS = -Werror $(BASECXXFLAGS)
-AM_CFLAGS = $(AM_CXXFLAGS) -Wmissing-declarations -Winline \
- -Wstrict-prototypes -Wmissing-prototypes
+BASECXXFLAGS = -Werror -Wall -Wpointer-arith -Wcomments \
+ -Wcast-align -Wwrite-strings -fno-builtin-sscanf \
+ -Wno-attributes
+AM_CXXFLAGS = $(BASECXXFLAGS) -std=gnu++11 ${$(*F)_CXXFLAGS}
+AM_CFLAGS = $(BASECXXFLAGS) -Wmissing-declarations -Winline \
+ -Wstrict-prototypes -Wmissing-prototypes
AM_YFLAGS = -d
AM_LFLAGS = -8
WINDRES = @WINDRES@
-AM_CPPFLAGS = -DLZMA_API_STATIC -I$(srcdir)/libgetopt++/include -I${srcdir}/regex
+AM_CPPFLAGS = -D__USE_MINGW_ANSI_STDIO=1 -DLZMA_API_STATIC\
+ -I$(srcdir)/libgetopt++/include \
+ $(ZLIB_CFLAGS) $(LZMA_CFLAGS) $(ZSTD_CFLAGS) $(LIBCRYPT_CFLAGS) $(LIBSOLV_CFLAGS)
-noinst_PROGRAMS = @SETUP@$(EXEEXT) @INILINT@
+inilex_CXXFLAGS:=-Wno-sign-compare
+iniparse_CXXFLAGS:=-Wno-free-nonheap-object
-EXTRA_PROGRAMS = inilint
-## noinst_PROGRAMS +=inilint
+noinst_PROGRAMS = @SETUP@$(EXEEXT) inilint
EXTRA_DIST = \
CHANGES \
CONTRIBUTORS \
COPYING \
bootstrap.sh \
- check-na.bmp \
- check-no.bmp \
- check-yes.bmp \
- choose-rtarrow.bmp \
- choose-spin.bmp \
cygwin.ico \
+ cygwin-setup.ico \
+ cygwin-terminal.ico \
setup.exe.manifest \
- tree-minus.bmp \
- tree-plus.bmp
+ tree-minus.ico \
+ tree-plus.ico
# iniparse.hh is generated from iniparse.yy via bison -d, so it needs to be
# included here for proper tracking (but not iniparse.cc, since automake
CLEANFILES = setup_version.c
inilint_LDADD = \
- libgetopt++/libgetopt++.la
+ libgetopt++/libgetopt++.la \
+ -lntdll -luuid
+
inilint_SOURCES = \
filemanip.cc \
filemanip.h \
- find.cc \
- find.h \
- FindVisitor.cc \
- FindVisitor.h \
+ CliParseFeedback.cc \
+ CliParseFeedback.h \
LogSingleton.cc \
LogSingleton.h \
IniDBBuilder.h \
inilintmain.cc \
inilex.ll \
iniparse.yy \
- IniParseFeedback.cc \
- IniParseFeedback.h \
- io_stream.h \
io_stream.cc \
- io_stream_file.h \
+ io_stream.h \
io_stream_file.cc \
- IOStreamProvider.h \
+ io_stream_file.h \
mkdir.cc \
mkdir.h \
mklink2.cc \
- PackageSpecification.cc \
- PackageSpecification.h \
+ mklink2.h \
PackageTrust.h \
- csu_util/rfc1738.cc \
- csu_util/rfc1738.h \
String++.cc \
- String++.h
+ String++.h \
+ win32.cc \
+ win32.h
@SETUP@_LDADD = \
- libgetopt++/libgetopt++.la -lgcrypt -lgpg-error -llzma -lbz2 -lz \
- -lshlwapi -lcomctl32 -lole32 -lwsock32 -lpsapi -luuid -lntdll -lwininet -lmingw32
+ libgetopt++/libgetopt++.la \
+ $(LIBGCRYPT_LIBS) \
+ $(ZSTD_LIBS) \
+ $(LZMA_LIBS) \
+ $(BZ2_LIBS) \
+ $(ZLIB_LIBS) \
+ $(LIBSOLV_LIBS) -lregex \
+ -lshlwapi -lcomctl32 -lole32 -lpsapi -luuid -lntdll -lwininet -lws2_32 \
+ -lmingw32 -lssp
@SETUP@_LDFLAGS = -mwindows -Wc,-static -static-libtool-libs
@SETUP@_SOURCES = \
+ actionlist.h \
AntiVirus.cc \
AntiVirus.h \
archive.cc \
archive_tar_file.cc \
choose.cc \
choose.h \
+ compactos.cc \
+ compactos.h \
compress.cc \
compress.h \
compress_bz.cc \
compress_gz.h \
compress_xz.cc \
compress_xz.h \
+ compress_zstd.cc \
+ compress_zstd.h \
+ confirm.cc \
+ confirm.h \
ConnectionSetting.cc \
ConnectionSetting.h \
ControlAdjuster.cc \
crypto.cc \
crypto.h \
cyg-pubkey.h \
- cygpackage.cc \
- cygpackage.h \
desktop.cc \
desktop.h \
dialog.cc \
IniDBBuilderPackage.h \
inilex.ll \
iniparse.yy \
- IniParseFeedback.cc \
IniParseFeedback.h \
- IniParseFindVisitor.cc \
- IniParseFindVisitor.h \
install.cc \
io_stream.cc \
io_stream.h \
IOStreamProvider.h \
KeysSetting.cc \
KeysSetting.h \
+ libsolv.cc \
+ libsolv.h \
+ ListView.cc \
+ ListView.h \
localdir.cc \
localdir.h \
LogFile.cc \
netio.h \
nio-ie5.cc \
nio-ie5.h \
- nio-file.cc \
- nio-file.h \
- nio-ftp.cc \
- nio-ftp.h \
- nio-http.cc \
- nio-http.h \
package_db.cc \
package_db.h \
+ package_depends.h \
+ package_depends.cc \
package_meta.cc \
package_meta.h \
package_source.cc \
package_source.h \
- package_version.cc \
package_version.h \
PackageSpecification.cc \
PackageSpecification.h \
PackageTrust.h \
PickCategoryLine.cc \
PickCategoryLine.h \
- PickLine.h \
PickPackageLine.cc \
PickPackageLine.h \
PickView.cc \
resource.h \
root.cc \
root.h \
- ScanFindVisitor.cc \
- ScanFindVisitor.h \
script.cc \
script.h \
setup_version.h \
setup_version.c \
- simpsock.cc \
- simpsock.h \
+ sha2.h \
+ sha2.c \
site.cc \
site.h \
source.cc \
csu_util/rfc1738.cc \
csu_util/rfc1738.h \
csu_util/version_compare.cc \
- csu_util/version_compare.h \
- regex/regex.c
+ csu_util/version_compare.h
-VER := $(shell sed -ne 's/^\$$Revi[s]ion: *\([^ ]*\) *$$.*/\1/p' \
- $(srcdir)/ChangeLog)
+GITVER := $(shell cd $(srcdir) && git describe --match release_\* --abbrev=6 --dirty || echo "N/A")
+VER := $(subst release_,,$(GITVER))
+ARCH := @ARCH@
-setup_version.c : $(srcdir)/ChangeLog Makefile
+setup_version.c : Makefile
+ @echo "Setup version: " $(VER)
$(AM_V_GEN)(echo '#define VERSION_PREFIX "%%% setup-version"';\
- echo 'static const char version_store[] = VERSION_PREFIX " '${VER}'";';\
+ echo 'static const char version_store[] = VERSION_PREFIX " '$(VER)'";';\
echo 'const char *setup_version = version_store + sizeof (VERSION_PREFIX);') > version.tmp && \
mv version.tmp setup_version.c
-# setup.exe.manifest is included in res.rc
-res.o: setup.exe.manifest
+# rules for translation maintenance
+.PHONY: pot rc2po po2rc
+
+pot:
+ cd $(srcdir) && rc2po -P res/en/res.rc res.pot
+
+LINGUAS=fr
+
+rc2po:
+ cd $(srcdir) && \
+ for l in $(LINGUAS) ; do \
+ rc2po -t res/en/res.rc --charset=utf-8 res/$$l/res.rc po/$$l/ ; \
+ done
+
+po2rc:
+ cd $(srcdir) && \
+ for l in $(LINGUAS) ; do \
+ po2rc -t res/en/res.rc --charset-output=utf-8 $$(./langopts $$l) po/$$l/ res/$$l && \
+ d2u -q res/$$l/res.rc ; \
+ done
+
+# files included by res.rc
+res.o: setup.exe.manifest res/en/res.rc $(foreach l,$(LINGUAS),res/$l/res.rc)
.rc.o:
- $(AM_V_GEN)$(WINDRES) --include-dir $(srcdir) -o $@ $<
+ $(AM_V_GEN)$(WINDRES) --codepage 65001 --include-dir $(srcdir) -o $@ $<
-# static const char version_store[] = VERSION_PREFIX " 2.686";
setup-src:
- @ver=setup-$$(sed -n 's/^static const char version_store.* VERSION_PREFIX " \([^"]*\)".*$$/\1/p' setup_version.c);\
- cd ${srcdir};\
- rm -f $$ver;\
- ln -sf . $$ver;\
- cvs status -R | sed -n "s%^ *Repository revision:.*/cvs/cygwin-apps/setup/\(.*\),v%$$ver/\1%p" |\
- sort | tar -T - -cjf ${CURDIR}/$$ver-src.tar.bz2;\
- echo $$ver-src.tar.bz2; exec rm -f $$ver
+ @ver=setup-$(VER);\
+ cd ${srcdir}; rm -f $$ver; ln -sf . $$ver;\
+ git ls-files | tar -T - -cJf ${CURDIR}/$$ver-src.tar.xz;\
+ echo $$ver-src.tar.xz; exec rm -f $$ver
+
+# optional: strip and compress executable
+.PHONY: strip upx
+
+strip: all
+ $(OBJCOPY) --add-gnu-debuglink=/dev/null --only-keep-debug setup$(EXEEXT) setup.dbg
+ $(OBJCOPY) --strip-all setup$(EXEEXT)
+ $(OBJCOPY) --add-gnu-debuglink=setup.dbg setup$(EXEEXT) setup$(EXEEXT)
+
+CLEANFILES += setup.dbg
+
+upx: strip
+ @if [ -e `which upx` ]; then\
+ upx --best --lzma setup$(EXEEXT) ;\
+ else \
+ echo "UPX doesn't seem to be installed, cannot compress setup$(EXEEXT)." ;\
+ fi
+
+release: upx
+ cp setup.dbg setup-${VER}.${ARCH}.dbg
+ cp setup${EXEEXT} setup-${VER}.${ARCH}${EXEEXT}
+
+UPLOAD_HOST=cygwin-admin@cygwin.com
+UPLOAD_PATH=/www/sourceware/htdocs/cygwin/setup
+SIGN_KEYS="--enable-dsa2 --personal-digest-preferences=sha256 -u 676041BA -u 1A698DE9E2E56300"
+
+upload: release
+ scp setup-${VER}.$(ARCH).exe setup-${VER}.$(ARCH).dbg ${UPLOAD_HOST}:${UPLOAD_PATH}
+ ssh ${UPLOAD_HOST} gpg --batch ${SIGN_KEYS} --detach-sign ${UPLOAD_PATH}/setup-${VER}.$(ARCH).exe
+clean-local:
+ rm -f setup*${EXEEXT} setup*.dbg