owntone-server/web-src/Makefile.am

238 lines
6.8 KiB
Makefile
Raw Normal View History

WEB_BUILD_DIR = htdocs
PACKAGE_JSON = package-lock.json \
package.json
WEB_DIRS = public \
src \
src/components \
src/filter \
src/i18n \
src/lib \
src/pages \
src/router \
src/stores \
src/templates \
src/webapi
WEB_FILES = \
public/android-chrome-512x512.png \
public/mstile-150x150.png \
public/browserconfig.xml \
public/site.webmanifest \
public/favicon.ico \
public/android-chrome-192x192.png \
public/safari-pinned-tab.svg \
public/apple-touch-icon.png \
public/favicon-16x16.png \
public/logo.svg \
public/favicon-32x32.png \
src/components/ModalDialogAddRss.vue \
src/components/ModalDialogPlaylistSpotify.vue \
src/components/ListPlaylistsSpotify.vue \
src/components/ListArtistsSpotify.vue \
src/components/ModalDialogComposer.vue \
src/components/ListArtists.vue \
src/components/ControlSlider.vue \
src/components/ModalDialogArtist.vue \
src/components/ListPlaylists.vue \
src/components/ModalDialogArtistSpotify.vue \
src/components/ModalDialogPlaylistSave.vue \
src/components/ModalDialogGenre.vue \
src/components/ModalDialogTrackSpotify.vue \
src/components/ListTracks.vue \
src/components/ListGenres.vue \
src/components/ModalDialogAlbumSpotify.vue \
src/components/TabsAudiobooks.vue \
src/components/IndexButtonList.vue \
src/components/TabsSettings.vue \
src/components/ModalDialogAddUrlStream.vue \
src/components/ModalDialogDirectory.vue \
src/components/ListComposers.vue \
src/components/CoverArtwork.vue \
src/components/NavbarItemOutput.vue \
src/components/ModalDialogAlbum.vue \
src/components/ControlDropdown.vue \
src/components/ModalDialogPlaylist.vue \
src/components/ListDirectories.vue \
src/components/ModalDialog.vue \
src/components/ListAlbums.vue \
src/components/ListAlbumsSpotify.vue \
src/components/ListItemQueueItem.vue \
src/components/ListTracksSpotify.vue \
src/components/LyricsPane.vue \
src/components/ModalDialogQueueItem.vue \
src/components/ModalDialogRemotePairing.vue \
src/components/ModalDialogTrack.vue \
src/components/ModalDialogUpdate.vue \
src/components/NavbarBottom.vue \
src/components/NavbarItemLink.vue \
src/components/NavbarTop.vue \
src/components/NotificationList.vue \
src/components/PlayerButtonConsume.vue \
src/components/PlayerButtonLyrics.vue \
src/components/PlayerButtonNext.vue \
src/components/PlayerButtonPlayPause.vue \
src/components/PlayerButtonPrevious.vue \
src/components/PlayerButtonRepeat.vue \
src/components/PlayerButtonSeekBack.vue \
src/components/PlayerButtonSeekForward.vue \
src/components/PlayerButtonShuffle.vue \
src/components/SettingsCheckbox.vue \
src/components/SettingsIntfield.vue \
src/components/SettingsTextfield.vue \
src/components/TabsMusic.vue \
src/components/TabsSearch.vue \
src/filter/index.js \
src/i18n/index.js \
src/i18n/de.json \
src/i18n/en.json \
src/i18n/fr.json \
src/i18n/zh-CN.json \
src/i18n/zh-TW.json \
src/lib/Audio.js \
src/lib/SVGRenderer.js \
src/lib/GroupedList.js \
src/pages/PageMusicRecentlyPlayed.vue \
src/pages/PageMusicSpotifyFeaturedPlaylists.vue \
src/pages/PageAudiobooksArtists.vue \
src/pages/PageAudiobooksGenres.vue \
src/pages/PageAlbum.vue \
src/pages/PageComposerAlbums.vue \
src/pages/PageMusicSpotify.vue \
src/pages/PagePlaylistTracks.vue \
src/pages/PagePodcast.vue \
src/pages/PageMusicSpotifyNewReleases.vue \
src/pages/PageRadioStreams.vue \
src/pages/PageAudiobooksAlbums.vue \
src/pages/PageComposers.vue \
src/pages/PageAudiobooksArtist.vue \
src/pages/PageGenres.vue \
src/pages/PageMusic.vue \
src/pages/PageGenreAlbums.vue \
src/pages/PageAbout.vue \
src/pages/PageAlbumSpotify.vue \
src/pages/PageAlbums.vue \
src/pages/PageArtist.vue \
src/pages/PageArtistSpotify.vue \
src/pages/PageArtistTracks.vue \
src/pages/PageArtists.vue \
src/pages/PageComposerTracks.vue \
src/pages/PageFiles.vue \
src/pages/PageGenreTracks.vue \
src/pages/PageMusicRecentlyAdded.vue \
src/pages/PagePlaylistFolder.vue \
src/pages/PagePlaylistTracksSpotify.vue \
src/pages/PagePodcasts.vue \
src/pages/PageQueue.vue \
src/pages/PageSearchLibrary.vue \
src/pages/PageSearchSpotify.vue \
src/pages/PageSettingsOnlineServices.vue \
src/pages/PageSettingsRemotesOutputs.vue \
src/pages/PageAudiobooksAlbum.vue \
src/pages/PageNowPlaying.vue \
src/pages/PageSettingsArtwork.vue \
src/pages/PageSettingsWebinterface.vue \
src/router/index.js \
src/stores/configuration.js \
src/stores/library.js \
src/stores/lyrics.js \
src/stores/notifications.js \
src/stores/outputs.js \
src/stores/player.js \
src/stores/queue.js \
src/stores/remotes.js \
src/stores/search.js \
src/stores/services.js \
src/stores/settings.js \
src/stores/ui.js \
src/templates/ContentWithHeading.vue \
src/templates/ContentWithHero.vue \
src/webapi/index.js \
src/App.vue \
src/icons.js \
src/main.js \
src/mystyles.scss \
.prettierrc.json \
eslint.config.js \
index.html \
jsconfig.json \
$(PACKAGE_JSON) \
vite.config.js
EXTRA_DIST = $(WEB_FILES) htdocs
node_modules: $(PACKAGE_JSON)
@if [ "$(abs_srcdir)" = "$(abs_builddir)" ]; then \
echo "In-tree build detected"; \
else \
echo "Out-of-tree build detected, copy source files to build dir"; \
for dir in $(WEB_DIRS); do \
dest_dir="$(abs_builddir)/$$dir"; \
mkdir -p "$$dest_dir"; \
done; \
for file in $(WEB_FILES); do \
src_path="$(abs_srcdir)/$$file"; \
dest_path="$(abs_builddir)/$$file"; \
cp "$$src_path" "$$dest_path"; \
done; \
fi
$(if $(NPM),$(NPM) clean-install)
# Build the Vue.js application
htdocs: node_modules $(WEB_FILES)
$(if $(NPM),$(NPM) run build)
web: htdocs
web-serve: node_modules
$(if $(NPM),$(NPM) run serve)
web-update:
$(if $(NPM),$(NPM) update)
web-check:
@echo "Verifying that all source files in 'src' and 'public' are listed in WEB_FILES ..."
@unexpected_files=0; \
for file in $$(find public src -type f); do \
if ! echo " $(WEB_FILES) " | grep -q " $$file "; then \
echo "Unknown web interface source file found: $$file"; \
unexpected_files=1; \
fi; \
done; \
if [ $$unexpected_files -eq 0 ]; then \
echo "All source files listed in WEB_FILES."; \
else \
echo "FAILURE: Unknown web interface source files found, please add them to WEB_FILES."; \
exit 1; \
fi
web-lint: node_modules
$(if $(NPM),$(NPM) run lint --no-fix)
web-format: node_modules
$(if $(NPM),$(NPM) run format)
all-local: htdocs
install-data-local:
mkdir -p $(DESTDIR)$(datadir)/owntone/htdocs
cp -r $(WEB_BUILD_DIR)/* $(DESTDIR)$(datadir)/owntone/htdocs
uninstall-local:
rm -rf $(DESTDIR)$(datadir)/owntone/htdocs
# Clean up Vue.js build artifacts
clean-local:
rm -rf $(WEB_BUILD_DIR)
distclean-local:
@if [ "$(abs_srcdir)" != "$(abs_builddir)" ]; then \
echo "Cleaning up copied files from out-of-tree build..."; \
for file in $(WEB_FILES); do \
rm -f "$(abs_builddir)/$$file"; \
done; \
fi
rm -rf node_modules